返回
当前 - 选择题 - 设计模式困难
题号:0020130500024
单选题
2013年11月第24题
困难
题号:0020130500024
单选题
2013年11月第24题
设计模式
简单
高频
收藏
分享
反馈
某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条或者带有黑色边框,或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加3个类。
那么采用设计模式(装饰)可实现该需求,其优点是(比静态继承具有更大的灵活性)。
浓缩知识点
装饰模式属于结构型设计模式,核心是在不修改原有对象代码的基础上,通过将对象包裹在装饰器类中,动态为其添加或组合额外功能。它相比静态继承的核心优势是灵活性极强,可在运行时按需组合不同功能,能有效避免因多维度功能扩展导致的子类数量爆炸问题,比如给文本、图片控件添加滚动条、边框这类多组合需求时,仅需新增少量装饰类就能实现各类功能组合,无需为每种组合单独创建子类。需注意区分它与其他模式的差异:外观模式是为复杂系统提供统一简化接口,单例模式保证类仅一个实例,桥接模式侧重分离接口与实现,这些均与装饰模式的定位不同。装饰模式适用于需要动态增减对象功能、或采用继承会产生大量冗余子类的场景,能在保留原有对象结构完整性的同时,灵活实现功能扩展。
正确答案
C
本题考察的是装饰模式(Decorator Pattern)。
外观:用于为复杂系统提供统一的简化接口,不;单体:指单例模式,保证一个类只有一个实例,不相关;装饰:允许为对象动态叠加功能,例如在文本或图片控件外添加滚动条、边框,正好;模板方法:用于定义算法骨架,不涉及动态扩展。
本小问答案是 装饰。允许为对象动态叠加功能,例如在文本或图片控件外添加滚动条、边框,正好。
因此,选项 C 正确。
