装饰(Decorator)模式可以在不修改对象外观和功能的情况下添加或者删除对象功能

试题(35)、(36)

某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条或者带有黑色边框,或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加3个类。那么采用设计模式____(35)可实现该需求,其优点是____(36)。

(35)A. 外观 B. 单体 C. 装饰 D. 模板方法

(36)A. 比静态继承具有更大的灵活性 B. 提高已有功能的重复使用性 C. 可以将接口与实现相分离 D. 为复杂系统提供了简单接口

试题(35)、(36)分析

装饰(Decorator)模式可以在不修改对象外观和功能的情况下添加或者删除对象功能。它可以使一种对客户端来说是透明的方法来修改对象的功能,也就是使用初始类的子类实例对初始对象进行授权。装饰模式还为对象动态地添加了额外的重任,这样就在不使用静态继承的情况下,为修改对象功能提供了灵活的选择。

在以下情况中,应该使用装饰模式:

  • 想要在单个对象中动态并且透明地添加责任,而这样并不会影响其他对象;

  • 想要在以后可能要修改的对象中添加责任;

  • 当无法通过静态子类化实现扩展时。

参考答案

(35)C (36)A

相关推荐
Dola_Zou6 小时前
工厂智能排产软件算法保护与按产线计费实战
算法·自动化·软件工程·软件加密
紫_龙6 小时前
12软考备课基础阶段考点理论精讲数据库基础
软件工程
郝学胜-神的一滴11 小时前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
lytao12318 小时前
一个人做项目:先减少切换,再放大产出
软件工程
workflower2 天前
人形机器人技术与产业基础
机器人·云计算·软件工程·需求分析·软件需求
梁辰兴2 天前
软件工程:排错方法
软件工程·梁辰兴·经典方法·排错方法·科学推理方法·现代工具方法·方法选择与组合
梁辰兴3 天前
软件工程:排错的原则
软件工程·梁辰兴·排错的原则·五大原则·排错方法·策略选择·排错心法
rolt3 天前
用UML表示的行业标准02汽车-AUTOSAR
软件工程·ddd·uml·领域驱动设计·ontology·本体
信安IT租赁3 天前
本地化部署的AI营销CRM:基于事件驱动的全流程自动化状态机实践
大数据·人工智能·软件工程