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

这篇具有很好参考价值的文章主要介绍了软考 系统架构设计师系列知识点之设计模式(4)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

所属章节:

老版(第一版)教材

第7章. 设计模式

        第2节. 设计模式实例

3. 行为型模式

行为型模式可以影响一个系统的状态和行为流通过优化状态和行为流转换和修改的方式,可以简化、优化并且提高应用程序的可维护性。行为型模式包括:

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

(1)Chain of Responsibility(责任链)模式

Chain of Responsibility模式可以在系统中建立一个链,这样消息可以在首先接收到它的级别被处理,或者可以定位到可以处理它的对象

一句话概括:责任链模式为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一个链,并沿着这条链接传递该请求,直到有一个对象处理它

Chain of Responsibility模式的优点如下:

  • 降低了耦合度。
  • 增加向对象指定责任的灵活性。
  • 由于在一个类中产生的事件可以被发送到组成中的其它类处理器上,类的集合可以作为一个整体。

在以下情况中,应该使用Chain of Responsibility模式:

  • 多个对象可以处理一个请求,而其处理器却是未知的。
  • 想要在不指定确切的请求接收对象的情况下,向几个对象中的一个发送请求。
  • 可以动态地指定能够处理请求的对象集。

(2)Command(命令)模式

Command模式在对象中封装了请求,这样就可以保存命令,将该命令传递给方法以及像任何其它对象一样返回该命令

一句话概括:Command模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作

Command模式的优点如下:

  • 将调用操作的对象与知道如何完成该操作的对象相分离。
  • 更容易添加新命令,因为不用修改已有类。

在以下情况中,应该使用Command模式:

  • 想要通过要执行的动作来参数化对象。
  • 要在不同的时间指定、排序以及执行请求。
  • 必须支持Undo、日志记录或事务。

(3)Interpreter(解释器)模式

Interpreter模式可以解释定义其语法表示的语言,还提供了用表示来解释语言中的语句的解释器

一句话概括:解释器模式描述了如何为语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子

Interpreter模式的优点如下:

  • 容易修改并扩展语法。
  • 更容易实现语法。

在以下情况中,应该使用Interpreter模式:

  • 语言的语法比较简单。
  • 效率并不是最主要的问题。

(4)Iterator(迭代器)模式

Iterator模式为集合中的有序访问提供了一致的方法,而该集合是独立于基础集合、并与之相分离的。

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

Iterator模式的优点如下:

  • 支持集合的不同遍历。
  • 简化了集合的接口。

在以下情况中,应该使用Iterator模式:

  • 在不开放集合对象内部表示的前提下,访问集合对象内容。
  • 支持集合对象的多重遍历。
  • 为遍历集合中的不同结构提供了统一的接口。

(5)Mediator(中介者)模式

Mediator模式通过引入一个能够管理对象间消息分布的对象,简化了系统中对象间的通信。该模式可以减少对象之间的相互引用,从而提高了对象间的共耦合度,并且它还可以独立地改变其间的交互。

一句话概括:中介者模式用一个中介对象封装一系列的对象交互。中介者使得各对象不需要显式地相互调用,从而使其耦合松散,而且可以改变它们之间的交互

Mediator模式的优点如下:

  • 去除对象间的影响。
  • 简化了对象间协议。
  • 集中化了控制。
  • 由于不再需要直接互传消息,单个组件变得更加简单,而且容易处理。
  • 由于不再需要包含逻辑来处理组件间的通信,组件变得更加通用。

在以下情况中,应该使用Mediator模式:

  • 对象集合需要以一个定义规范但复杂的方式进行通信。
  • 想要在不使用子类的情况下自定义分布在几个对象之间的行为。

(6)Memento模式

Memento模式可以保持对象状态的“快照(snapshot)”,这样对象可以在不向外界公开其内容的情况下返回到它的最初状态

Memento模式的优点如下:

  • 保持封装的完整。
  • 简化了返回到初始状态所需的操作。

在以下情况中,应该使用Memento模式:文章来源地址https://www.toymoban.com/news/detail-719615.html

  • 必须保存对象状态的快照,这样以后就可以恢复状态。
  • 使用直接接口来获得状态可能会公开对象的细节,从而破坏对象的封装性。

到了这里,关于软考 系统架构设计师系列知识点之设计模式(4)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软考 系统架构设计师系列知识点之软件架构风格(1)

    这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格(水平)考试,11月4号就要考试,因此8天长假绝不能荒废,必须要好好利用起来。现在将各个核心知识点一一进行提炼并做记录。 所属章节: 第7章. 系统架构设计基础知识

    2024年02月07日
    浏览(38)
  • 软考 系统架构设计师系列知识点之软件构件(3)

    接前一篇文章:软考 系统架构设计师系列知识点之软件构件(2) 所属章节: 第2章. 计算机系统基础知识         第3节. 计算机软件                 2.3.7 软件构件 (2)J2EE(补充知识) J2EE核心组成 : 容器 Applet Container、Application Container、Web Container、EJB Container。 组件

    2024年02月08日
    浏览(32)
  • 软考 系统架构设计师系列知识点之云计算(2)

    接前一篇文章:软考 系统架构设计师系列知识点之云计算(1) 所属章节: 第11章. 未来信息综合技术         第6节. 云计算和大数据技术概述 3. 云计算的部署形式 根据NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)的定义,云计算从部署模式上看

    2024年02月04日
    浏览(35)
  • 软考 系统架构设计师系列知识点之大数据(3)

    接前一篇文章:软考 系统架构设计师系列知识点之大数据(2) 所属章节: 第11章. 未来信息综合技术         第6节. 云计算和大数据技术概述 大数据和云计算已成为IT领域的两种主流技术。“数据是重要资产”这一概念已成为大家的共识,众多公司争相分析、挖掘大数据背

    2024年02月03日
    浏览(39)
  • 软考 系统架构设计师系列知识点之云计算(1)

    所属章节: 第11章. 未来信息综合技术         第6节. 云计算和大数据技术概述 大数据和云计算已成为IT领域的 两种主流 技术。“数据是重要资产”这一概念已成为大家的共识,众多公司争相分析、挖掘大数据背后的重要财富。同时学术界、产业界和政府都对云计算产生了

    2024年02月04日
    浏览(42)
  • 软考 系统架构设计师系列知识点之云计算(3)

    接前一篇文章:软考 系统架构设计师系列知识点之云计算(2) 所属章节: 第11章. 未来信息综合技术         第6节. 云计算和大数据技术概述 4. 云计算的发展历程 根据云计算的定义和内涵,这里将从 虚拟化技术 、 分布式技术 和 软件应用模式 三个方面对云计算的历史和

    2024年02月04日
    浏览(37)
  • 软考 系统架构设计师系列知识点之基于架构的软件开发方法ABSD(6)

    接前一篇文章:软考 系统架构设计师系列知识点之基于架构的软件开发方法ABSD(5) 所属章节: 第7章. 系统架构设计基础知识         第5节. 特定领域软件体系结构 相关试题 1. 基于架构的软件设计(ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD方法

    2024年02月07日
    浏览(40)
  • 软考高级系统架构设计师系列案例考点专题六:面向服务架构设计

    SOA概述和发展 SOA的参考架构 SOA主要协议和规范 SOA设计标准和原则 SOA的设计模式 SOA构建和实施 在面向服务的体系结构(SOA)中,服务的概念有了延伸,泛指系统对外提供的功能集。 从应用的角度定义,可以认为SOA是一种应用框架,它着眼于日常的业务应用,并将它们划分为单

    2024年02月05日
    浏览(36)
  • 软考高级系统架构设计师系列案例考点专题四:嵌入式系统

    嵌入式每年必考一题,但是属于选做题,如果不会可以不选。主要考查嵌入式系统的实时性和可靠性以及容错等概念。大概率会考到一些嵌入式领域的陌生技术,如果是完全没有见过的技术,不选即可。 系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包