查看更多
当前 - 选择题 - 设计模式
中等
单选题
2015年11月第24题
#了解即可
#超纲

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

浓缩知识点

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

正确答案
A

本题考察的是桥接模式(Bridge Pattern) 的角色对应关系。桥接模式的核心思想是将抽象部分(Abstraction)与实现部分(Implementor)分离,使它们可以独立变化,适用于多维度变化的系统设计。

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

问题2
A选项 Shape:抽象角色,不是实现接口,错误。
B选项 Drawing:这是实现部分的接口,定义绘图的抽象操作,对应 Bridge 模式中的 Implementor 角色,因此正确。
C选项 Rectangle:是 RefinedAbstraction 角色,错误。
D选项 V2Drawing:是具体实现类 ConcreteImplementor,错误。
因此选择 B。

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