返回
当前 - 选择题 - 设计模式
题号:0020150500024
单选题
2015年11月第24题

某软件公司欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。在明确用户需求后,该公司的架构师决定采用 Bridge模式实现该软件,并设计 UML 类图如下图所示。图中与 Bridge 模式中的 "Abstraction" 角色相对应的类是(Shape),与 "Implementor" 角色相对应的类是(Drawing)。

浓缩知识点

桥接模式核心是将系统的抽象部分与实现部分解耦,让二者可独立扩展,以此应对多维度变化的业务场景,避免因维度叠加导致类数量爆炸。其中包含四类核心角色:Abstraction为抽象角色,通常以抽象类形式存在,既定义抽象业务接口,又持有Implementor角色的引用,以此搭建抽象与实现间的桥接;RefinedAbstraction是Abstraction的具体子类,负责实现抽象类的业务方法,对应抽象维度的具体实例;Implementor为实现角色,是定义实现部分操作规范的抽象接口;ConcreteImplementor是Implementor的具体实现类,负责完成具体的实现逻辑。比如在图形绘图场景中,图形类型是抽象维度,绘图技术是实现维度,通过桥接模式,新增图形类型或绘图实现都可独立进行,互不影响系统原有结构。

正确答案
A

本题考察的是桥接模式(Bridge Pattern) 的角色对应关系。
本小问答案是 Shape。在 UML 图中,Shape 是抽象类,定义了抽象接口(如 draw 方法)并持有 Implementor 的引用,正是 Bridge 模式中的 Abstraction 角色。
A. Shape:在 UML 图中,Shape 是抽象类,定义了抽象接口(如 draw 方法)并持有 Implementor 的引用,正是 Bridge 模式中的 Abstraction 角色,因此正确。
B. Drawing:这是实现接口类,对应 Implementor,不是 Abstraction,错误。
C. Rectangle:是 Shape 的具体子类,对应 RefinedAbstraction 角色,错误。
D. V2Drawing:是 Drawing 的具体实现类,对应 ConcreteImplementor,错误。
因此,选项 A 正确。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有