软考80-上午题-【面向对象技术3-设计模式】-结构型设计模式03

一、外观模式

1-1、意图

为子系统中的一组接口提供一个一致的界面

Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

1-2、结构 

  • Facade 知道哪些子系统类负责处理请求:将客户的请求代理给适当的子系统对象。
  • Subsvstem classes 实现子系统的功能:处理有 Facade 对象指派的任务:没有 Facade 的任何相关信息,即没有指向 Facade 的指针。

1-3、代码实现

1-4、适用性

  • 要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类,这使得子系统更具有可重用性,也更容易对子系统进行定制,但也给那些不需要定制子系统的用户带来一些使用上的困难Facade 可以提供一个简单的默认视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过 Facade 层。
  • 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入 Facade 将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
  • 当需要构建一个层次结构的子系统时,使用 Facade 模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,则可以让它们仅通过 Facade 进行通信,从而简化了它们之间的依赖关系。 

1-5、真题

真题1:

真题2:

二、享元模式

2-1、意图

运用共享技术有效地支持大量细粒度的对象。

2-2、结构

2-3、适用性

  • 应用程序使用了大量的对象。
  • 完全由于使用大量的对象,造成很大的存储开销。
  • 对象的大多数状态都可变为外部状态。
  • 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。
  • 应用程序不依赖于对象标识。由于 Flyweight 对象可以被共享,所以对于概念上明显有别的对象,标识测试将返回真值。

2-4、代码实现 

2-5、真题 

真题1:

三、代理模式

3-1、意图

为其他对象提供一种代理以控制对这个对象的访问

3-2、结构

3-3、代码实现

1-4、适用性

1-5、真题

真题1:

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible playbook格式 语法 Ansible playbook格式入门演示 基础了解

目录 Ansible playbook格式简介实例运行结果 Ansible playbook格式简介 playbook由YMAL语言编写。YAML( /ˈjməl/ )参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822,Clark Evans在2001年5月在首次发表了这种语言…

macOS 安装 NetLogo 6.4.0

netlogo 下载地址 NetLogo-6.4.0.dmg参考 netlogo 官网

vue3之带参数的动态路由

在应用中&#xff0c;可以使用<router-link> 内置组件或 $router.push 方法来导航到带参数的路由。 定义路由 // 引入 Vue 和 Vue Router import { createRouter, createWebHistory } from vue-router; // 引入组件 import Home from ../views/Home.vue; import …

C#,图论与图算法,图(Graph)的数据结构设计与源代码

因为后面即将发布的大量有关“图”的算法与源代码都需要用到下面的这些基础数据&#xff0c;为避免大家去下载&#xff0c;特意先发布于此。 一、图&#xff08;Graph&#xff09;的基础知识 图&#xff08;Graph&#xff09;是一组对象的图示&#xff0c;其中一些对象对通过链…

STM32(TIM定时器中断)

理论知识 定时器定时中断 接线图 定时器工作配置步骤 定时中断和内外时钟源选择 定时器中需要使用的函数 程序实现效果&#xff1a; void TIM_DeInit(TIM_TypeDef* TIMx); **// 恢复定时器的缺省配置**void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef*TIM…

【C++】每日一题 228 汇总区间

给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按…

SeAndroid 安全策略机制

seAndroid 是 Android 系统中 SELinux&#xff08;Security-Enhanced Linux&#xff09;的实现&#xff0c;它为 Android 提供了强制访问控制&#xff08;MAC&#xff09;机制。在 seAndroid 中&#xff0c;策略规则定义了不同进程和文件之间的交互方式&#xff0c;以确保系统的…

数据可视化-ECharts Html项目实战(2)

在之前的文章中&#xff0c;我们学习了如何创建简单的折线图&#xff0c;条形图&#xff0c;柱形图并实现动态触发&#xff0c;最大最小平均值。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下…

波奇学Linux:线程安全和自选锁和读写锁

STL不是线程安全的 单例模式的线程安全 自选锁&#xff1a;当线程申请锁失败时&#xff0c;不是挂起&#xff0c;而是一直申请 挂起等待锁 &#xff1a;当线程申请锁失败时&#xff0c;把锁挂起 一般临界区时间短的适合自选锁&#xff0c;长的适合挂起等待锁

Unity的AssetBundle资源运行内存管理的再次深入思考

大家好&#xff0c;我是阿赵。   这篇文章我想写了很久&#xff0c;是关于Unity项目使用AssetBundle加载资源时的内存管理的。这篇文章不会分享代码&#xff0c;只是分享思路&#xff0c;思路不一定正确&#xff0c;欢迎讨论。   对于Unity引擎的资源内存管理&#xff0c;我…

Visual Studio项目模板的创建与使用

Visual Studio项目模板的创建、使用、删除 创建模板项目模板的使用模板的删除 创建模板 点击项目&#xff0c;点击导出模板 选择你要创建哪个项目的项目模板&#xff0c;点击下一步 输入你的模板名称并添加模板说明&#xff0c;方便记忆 项目模板的使用 点击创建新项目 输入刚刚…

[长城杯 2021 院校组]funny_js

[长城杯 2021 院校组]funny_js 审题 根据题名提示为js&#xff0c;再在ida中查看&#xff0c;基本可以确定为quickjs题 QuickJS 是一个快速、灵活且易于嵌入的 JavaScript 引擎&#xff0c;适用于需要在资源受限环境下运行 JavaScript 代码的场景。 工具准备 来到Linux&…

Qt QTableWidget 实现行选中及行悬浮高亮

表格整行的 selected、hover 高亮需求很常见&#xff0c;但使用 Qt 提供的开箱即用的方法根本无法实现这个需求&#xff08;至少在当前的时间节点是不行的&#xff09;&#xff1b;想要实现这个效果必须要费一点点力气&#xff0c;我们尽量选择较为简单的方法。 话不多说&…

高可用系统有哪些设计原则

1.降级 主动降级&#xff1a;开关推送 被动降级&#xff1a;超时降级 异常降级 失败率 熔断保护 多级降级2.限流 nginx的limit模块 gateway redisLua 业务层限流 本地限流 gua 分布式限流 sentinel 3.弹性计算 弹性伸缩—K8Sdocker 主链路压力过大的时候可以将非主链路的机器给…

Linux rhmask命令教程:管理Red Hat系统中的掩码(附案例详解和注意事项)

Linux rhmask命令介绍 rhmask是一个用于管理Red Hat系统中的掩码的命令。它可以帮助用户查看、设置和删除系统中的掩码。掩码是一种用于控制文件权限的机制&#xff0c;通过设置掩码&#xff0c;用户可以控制新创建的文件或目录的默认权限。 Linux rhmask命令适用的Linux版本…

python内置函数 C

python内置函数 C Python 解释器内置了很多函数和类型&#xff0c;任何时候都能使用。 C 名称描述callable检查一个对象是否是可调用的。chr将整数&#xff08;表示Unicode码点&#xff09;转换为对应的字符。classmethod将一个方法转变为类方法。compile将源代码字符串编译…

Task-balanced distillation for object detection用于

Task-balanced distillation for object detection用于目标检测的任务平衡蒸馏 摘要 主流的目标检测器通常由分类和回归两个子任务组成&#xff0c;由两个并行头部实现。这种经典的设计范式不可避免的导致分类得分和定位质量&#xff08;IOU&#xff09;之间的空间分布不一致…

【CTF web1】

CTF web 一、CTF web -PHP弱类型1、是否相等&#xff1f;2、转换规则: 二、CTF web -md5绕过1、若类型比较绕过2、null绕过3、碰撞绕过 三、习题 一、CTF web -PHP弱类型 1、是否相等&#xff1f; &#xff1a;在进行比较的时候&#xff0c;会先判断两种字符串的类型是否相等&…

深入探讨GPT系列与其他NLP架构的流行度差异及其应用解析

Transformer问答-1 为什么现在GPT系列的decoder-only那么流行&#xff0c;而其它两者:encoder-only和encoder-decoder架构不流行了呢? GPT系列&#xff08;特别是从GPT-3开始&#xff09;的流行并不意味着encoder-only或encoder-decoder架构不再流行或不再重要。事实上&…

2024.3.13-408学习笔记-C-数据在内存中的存储

1、整数型存储 整数型存储就是所有整型家族里的数据类型的存储方式&#xff0c;也就是说包含了字符类型的存储&#xff08;因为字符的操作符的返回值是ASCII码值&#xff0c;故实际上存储的是整数&#xff09;。 1.1、有符号整数 有符号整数包含char&#xff0c;short&#…