欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序。以绘制直线和图形为例,得到如下图所示的类图。该设计采用()模式将抽象部分与其实现部分分离,使它们都可以独立地变化。其中()定义了实现类接口,该模式适用于()的情况,该模式属于()模式

96bfdffce7e350cfc788c86760a9d28f.png

请先 登录 后评论

1 个回答

亚里士德
擅长:互联网

知识点:面向对象-结构型设计模式

位于章节7.3.3。

根据描述,只有桥接模式是这样的。所以第一空是桥接模式。选项有A.适配器( Adapten)B.装饰(Decorator)C.桥接(Bridge)D.组合( Composite )。A选项的关键词是不兼容,B选项的关键词是变化后通知,C选项就是如题中所说,D选项的关键词是层次结构。

第二空谁定义了接口,很明显是drawing。根据书上的对于这些设计模式的描述,指向最抽象的那一个,而且处于中间的那一个类,一般都是用来定义需要实现的接口的。

第三空有几个选项,A.不希望在抽象和它的实现部分之间有一个固定判定关系 B.想表示对象的部分-整体层次结构 C.想使用一个已经存在的类,而它的接口不符合要求D.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。

考察的是设计模式的适用性。A就是桥模式,B说的是组合模式,C是需要适配的所以是适配器模式,D是装饰者。

最后一空,问这个模式属于哪一个大类。属于三种设计模式分类中的结构型设计模式。结构型的目的是,在使用类的时候进行组合,变成一个拥有更多功能的类。所以结构型的主要关键词是扩展功能。桥模式在这些结构型中的目的其实并不比其他模式比如装饰者、桥接模式明显,因为桥模式如果要加功能,那么就需要一个新的实现子类,比如题目中的dp1和dp2实现的功能时不一样的。

请先 登录 后评论