• 软考 系统架构设计师系列知识点之设计模式(9)


    接前一篇文章:软考 系统架构设计师系列知识点之设计模式(8)

    所属章节:

    老版(第一版)教材

    第7章. 设计模式

            第2节. 设计模式实例

    相关试题

    7. 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用()模式,用一个特定对象来封装一系列的对象交互,从而使各对象不需显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。

    A. 解释器(Interpreter)

    B. 策略(Strategy)

    C. 中介者(Mediator)

    D. 迭代器(Iterator)

    正确答案:C。

    解析:

    • 解释器(Interpreter)模式

    解释器模式属于类的行为模式,描述了如何为语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的代码。

    • 策略(Strategy)模式

    策略模式是一种对象的行为型模式,定义一系列算法,并将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和环境分隔,当出现新的行为时,只需要实现新的策略类。

    • 中介者(Mediator)模式

    中介者模式是一种对象的行为型模式,通过一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就是说系统的结构不会因为新对象的引入带来大量的修改工作。

    • 迭代器(Iterator)模式

    迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象。

    由上述可知,与题目所描述场景符合的是中介者模式。

    8. 某广告公司的宣传产品有宣传册、文章、传单等多种形式,宣传产品的出版方式包括纸质方式、CD、VCD、在线发布等。现要求该广告公司设计一个管理这些宣传产品的应用,采用()设计模式较为合适,该模式()。

    第1空

    A. Decorator

    B. Adapter

    C. Bridge

    D. Facade

    正确答案:C。

    第2空

    A. 将一系列复杂的类包装成一个简单的封闭接口

    B. 将抽象部分与它的实现部分分离,使它们都可以独立地变化

    C. 可在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责

    D. 将一个接口转换为客户希望的另一个接口

    正确答案:B。

    解析:

    本题考查设计模式的概念及应用。

    题目所给出的应用中,不希望在不同的宣传产品与具体所采用的的出版方式之间建立一个固定的绑定关系,以避免这两者之间的紧耦合关系。这种情形适合于采用Bridge(桥接)模式。桥接模式属于结构型设计模式的一种。结构型模式描述如何将类或对象合在一起形成更大的结构。桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

    在以下情况可以使用Bridge模式:

    • 不希望在抽象以及抽象的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻可以选择或切换实现部分。
    • 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,使用Bridge模式可以对不同的抽象接口和实现部分进行组合,并分别对他们进行扩充。
    • 对一个抽象的实现部分的修改应该对用户不产生影响,即客户的代码不必重新编译。

  • 相关阅读:
    ASP.NET Core 6框架揭秘实例演示[15]:针对控制台的日志输出
    六十九、Vue3
    深度学习之 8 深度模型优化与正则化2
    打造经典游戏:HTML5与CSS3实现俄罗斯方块
    Linux 驱动PCIE编程接口
    为什么spyder显示 Permission denied?
    [0xGame 2023 公开赛道] week3
    探索请求头中的UUID的不同版本:UUID1、UUID3、UUID4和UUID5
    【行为识别】差影法三维人体姿态行为识别【含Matlab源码 277期】
    人工智能,现在模型已够?只需应用?
  • 原文地址:https://blog.csdn.net/phmatthaus/article/details/134096019