装饰(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

相关推荐
unable code1 分钟前
攻防世界-Misc-4-1
网络安全·ctf·misc·1024程序员节
向上的车轮5 小时前
AI驱动开发:Gemini 3.0如何重塑软件工程范式
人工智能·软件工程·gemini 3.0
EmmaXLZHONG1 天前
Notes of Software Engineering Ninth Edition(软件工程第九版笔记)
笔记·软件工程
行业探路者1 天前
网站二维码的全解析与使用技巧分享
大数据·人工智能·学习·产品运营·软件工程
yBmZlQzJ2 天前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
雾江流2 天前
Deer.God 0.1.3 | 一款XP模块,可解锁数十款应用会员,弹窗捕捉,附FPA教程
软件工程
charlie1145141912 天前
AVX 指令集系列深度介绍:领域、意义、以及 AVX AVX2 的基本用法与样例
开发语言·c++·人工智能·软件工程·并行计算·avx
charlie1145141912 天前
如何把 Win32 窗口“置顶”(Windows + C++)
开发语言·c++·windows·笔记·学习·软件工程
雾江流2 天前
肉包 1.4.0 | 豆包AI手机平替,开源免费,AI自动化
运维·人工智能·自动化·软件工程
2501_916589452 天前
永久免费的win系统垃圾清理软件 释放磁盘空间
电脑·软件工程·开源软件