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

相关推荐
快乐的熊二1 天前
电脑实时监控,温度、功耗、频率一目了然
软件工程
炽天使3281 天前
Knife4j 4.5.0 + Spring Boot 3.4.11 版本兼容问题解决方案
1024程序员节
梁辰兴2 天前
软件工程:可行性研究的方法步骤
软件工程·研究方法·可行性研究·梁辰兴·可行性研究的方法步骤·研究工具·关键要点
还是奇怪2 天前
Simon Willison 用 DSPy 优化 Datasette Agent 提示词:提示工程正在变成可测试的软件工程
java·开发语言·软件工程
快乐的熊二2 天前
短视频批量下载工具,支持直播视频下载!
软件工程
无风听海2 天前
Skills 的工程学:把经典软件工程搬进一个概率型运行时
软件工程·claude code
疯狂打码的少年3 天前
【软件工程】软件项目估算(LOC/FP/COCOMO)+ 风险管理
笔记·软件工程
疯狂打码的少年3 天前
【软件工程】软件项目管理(人员/产品/过程/项目)
笔记·软件工程
叫我Paul就好3 天前
RAG 从入门到精通 - 基础版本
人工智能·软件工程·rag
ttod_qzstudio4 天前
【软考备考】软件工程详解:四大开发模型、黑盒白盒测试、McCabe 环路复杂度(附 10 道练习)
软件工程·软考·黑盒·白盒·mccabe 环路复杂度