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

相关推荐
思茂信息14 小时前
CST微波混频电路 --- 频线任务,谐波平衡(Harmonic Balance)
数据库·3d·负载均衡·软件工程·cst·电磁仿真
帅次1 天前
系统分析师-软件工程-信息系统开发方法&面向对象&原型化方法&面向服务&快速应用开发
软件工程·团队开发·软件构建·需求分析·代码规范·敏捷流程·结对编程
Evaporator Core1 天前
软件设计师软考备战:第五篇 软件工程与项目管理
软件工程
草莓熊Lotso1 天前
《测试视角下的软件工程:需求、开发模型与测试模型》
java·c++·测试工具·spring·软件工程
2401_865382501 天前
【国标36964解读】《软件工程软件开发成本度量规范》(GB/T36964-2018)解读
软件工程·软件开发·信息化项目·成本度量·后评价
小毛驴8501 天前
CMMI 软考知识点分析总结以及记忆方法
软件工程·cmmi
腾讯云开发者1 天前
1.8w字解析面向对象在软件工程中的应用
软件工程
lisw051 天前
编程语言top5对比分析!
大数据·人工智能·程序人生·机器学习·软件工程
帅次1 天前
系统分析师-软件工程-软件开发环境与工具&CMM&CMMI&软件重用和再工程
性能优化·软件工程·软件构建·需求分析·规格说明书·代码复审·极限编程
王哥儿聊AI2 天前
Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
人工智能·算法·安全·机器学习·音视频·软件工程