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

相关推荐
黄俊懿几秒前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节
iCxhust几秒前
stm32f103c8t6 boot0设置
stm32·单片机·嵌入式硬件·1024程序员节
BullSmall1 分钟前
开源 AI 赋能测试技术架构方案
1024程序员节
Jsundoku3 分钟前
第六章 深度学习 -- 循环神经网络
人工智能·深度学习·循环神经网络·1024程序员节
子非鱼@Itfuture6 分钟前
1024这天,我们聊聊AI
1024程序员节
夜雪一千7 分钟前
Linux 查找文件 & 搜索内容介绍
1024程序员节
小弥儿7 分钟前
GitHub今日热榜 | 2026-10-24:智能体安全攻防同日上榜
1024程序员节
John_Hui10 分钟前
MySQL 进阶知识
数据库·sql·mysql·1024程序员节
yma1611 分钟前
从零搭建 P2P 聊天室:yma16.cloud 在线工具实战
前端·1024程序员节
小码哥(^_^)11 分钟前
人力资源面试题集1
eclipse·1024程序员节