接前一篇文章:软考 系统架构设计师系列知识点之设计模式(8)
所属章节:
老版(第一版)教材
第7章. 设计模式
第2节. 设计模式实例
7. 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用()模式,用一个特定对象来封装一系列的对象交互,从而使各对象不需显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。
A. 解释器(Interpreter)
B. 策略(Strategy)
C. 中介者(Mediator)
D. 迭代器(Iterator)
正确答案:C。
解析:
解释器模式属于类的行为模式,描述了如何为语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的代码。
策略模式是一种对象的行为型模式,定义一系列算法,并将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和环境分隔,当出现新的行为时,只需要实现新的策略类。
中介者模式是一种对象的行为型模式,通过一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就是说系统的结构不会因为新对象的引入带来大量的修改工作。
迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象。
由上述可知,与题目所描述场景符合的是中介者模式。
8. 某广告公司的宣传产品有宣传册、文章、传单等多种形式,宣传产品的出版方式包括纸质方式、CD、VCD、在线发布等。现要求该广告公司设计一个管理这些宣传产品的应用,采用()设计模式较为合适,该模式()。
第1空
A. Decorator
B. Adapter
C. Bridge
D. Facade
正确答案:C。
第2空
A. 将一系列复杂的类包装成一个简单的封闭接口
B. 将抽象部分与它的实现部分分离,使它们都可以独立地变化
C. 可在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责
D. 将一个接口转换为客户希望的另一个接口
正确答案:B。
解析:
本题考查设计模式的概念及应用。
题目所给出的应用中,不希望在不同的宣传产品与具体所采用的的出版方式之间建立一个固定的绑定关系,以避免这两者之间的紧耦合关系。这种情形适合于采用Bridge(桥接)模式。桥接模式属于结构型设计模式的一种。结构型模式描述如何将类或对象合在一起形成更大的结构。桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。
在以下情况可以使用Bridge模式: