某软件公司欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。在明确用户需求后,该公司的架构师决定采用Bridge模式实现该软件,并设计UML类图如下图所示。图中与Bridge模式中的“Abstraction”角色相对应的类是(6),与“Implementor”角色相对应的类是(7)。【回答括号7】
- A.Shape
- B.Drawing
- C.Rectangle
- D.V2Drawing
正确答案及解析
正确答案
B
解析
桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式类似于多重继承方案,但是多重继承方案往往违背了类的单一职责原则,其复用性比较差,桥接模式是比多重继承方案更好的解决方法。
·Abstraction定义抽象类的接口;维护一个指向Implementor类型对象的指针。
·RefinedAbstraction扩充由Abstraction定义的接口。
·Implementor定义实现类的接口,该接口不一定要与Abstraction的接口完全一致;事实上这两个接口可以完全不同。一般来说,Implementor接口仅提供基本操作,而Abstraction则定义了基于这些基本操作的较高层次的操作。
·ConcreteImplementor实现Implementor接口并定义它的具体实现。
图中与Bridge模式中的“Abstraction”角色相对应的类是Shape,与“Implementor”角色相对应的类是Drawing。