扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 设计模式简单
单选题
2025年11月第43题
简单
单选题
2025年11月第43题
#第二版教材
#必须掌握
在软件设计中,为了在不修改原有类的情况下,动态地为对象添加新的职责或功能,应采用哪种设计模式?(【装饰器模式】)
问题(1)
浓缩知识点
装饰器模式是结构型设计模式的一种,核心是在不修改原有类代码、不破坏原对象结构的前提下,动态为对象添加新的职责或功能。它通过构建与原有类实现相同接口的装饰器类,以包装原有对象的方式,在保留原接口一致性的同时嵌入新增业务逻辑,实现行为扩展。相较于依赖继承的静态扩展方式,装饰器模式支持在运行时灵活组合多个装饰器,实现多维度的功能叠加,有效避免了继承导致的类层级膨胀、灵活性不足的问题。该模式适用于需动态为对象增减功能、或存在多种可组合扩展需求的场景,比如软件中的日志功能动态嵌入、IO流的多维度处理等场景均有典型应用。此外要注意区分相似模式:抽象工厂属于创建型模式,用于创建相关依赖对象家族;观察者模式是行为型模式,实现一对多的事件通知;桥接模式侧重分离抽象与实现让两者独立演化,这些模式的核心目标与装饰器的动态功能扩展定位存在明显差异。
正确答案
D
本题考察的是结构型设计模式中的装饰器模式(Decorator Pattern)。
装饰器模式是一种在不改变原有对象结构的前提下,动态地为对象添加新功能的模式。它通过创建一个包装对象(Decorator),在保持原对象接口一致的同时,扩展其行为。
A选项 抽象工厂模式:属于创建型模式,用于创建相关或依赖对象的家族,不涉及动态功能扩展。
B选项 观察者模式:属于行为型模式,用于实现一对多的通知机制,与动态增强无关。
C选项 桥接模式:属于结构型模式,用于将抽象部分与实现部分分离,以便它们可以独立变化。
D选项 装饰器模式:正确。它提供了一种灵活的机制,使功能扩展可以在运行时动态组合。
因此,正确答案为 D(装饰器模式)。
