美文网首页
GoF - 行为模式

GoF - 行为模式

作者: _Walker__ | 来源:发表于2021-11-24 00:25 被阅读0次

责任链模式(Chain Of Responsiblity)

使多个对象都有机会处理请求,从而避免请求的发送者和接受者间的耦合关系。
将处理请求的对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

对象结构

责任链中,从第一个对象开始,链中收到请求的对象要买自己处理它,要么转发给链中的下一个对象。

  • 责任链是在运行时动态建立的,因此灵活性较强
  • 责任链并不保证每个请求都能被处理
  • 在责任链中,最多只有一个对象负责处理请求

中介者模式(Mediator)

用一个中间对象封装一系列的对象交互。
中介者使各对象不需要显示的相互引用,从而使其低耦合,而且可以独立的改变它们之间的交互。

应用场景

  • 一组对象饴定义良好但是复杂的方式进行通信。产生的相互依赖关系混乱且难以理解
  • 一个对象引用了很多其他对象,并且直接与这些对象通信,导致难以复用该对象
  • 想定制一个分布在多个类中的行为,而又不想生成太多的子类

特点

  • 减少子类生成,Mediator使得Colleague类可以被复用,减少了Colleague创建子类拓展业务的可能
  • 控制集中化,Mediator将对象交互的复杂性,变为中介者的复杂性。这可能导致中介者本身成为一个难以维护的对象。
  • Mediator与MVC中的C有着相同的职责

备忘录模式(Memento)

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

应用场景

  • 必须保存对象在某一时刻的状态,以便后面将其恢复到原先的状态
  • 用接口让其他对象获得自身状态,会暴露对象的实现细节并破坏封装性

特点

  • Memento的合理实现,很依赖语言的特性支持。Memento中状态的存取只应对原类对象完全开放,其他类不应获得访问权限。C++的友元、C#的内部类都提供了有效的支持。

访问者模式(Visitor)

Visitor表示 一个 作用于某对象结构中各元素的操作。
它使你可以在不改变各元素的类的前提下,定义作用于这些元素的新操作。

应用场景

  • 对象结构很少改变,但经常需要在此结构上增加新的操作
  • 需要对一个对象结构的成员对象,进行很多不同且不相关操作(这里不相关是指多个操作间不相关,但每个成员对象都有相同的操作),又不想这些操作污染成员对象的类。Visitor将每一组相关的操作集中放在一个类中。

特点

  • 一个具体的Visitor类,定义一个操作
  • 每个Element都要知道Visitor的存在(但只需要简单的执行Visitor的Visit方法)。这一特点意味着, 在最初没有给Visitor预留接口的设计中,不适合用Visitor来拓展操作。

相关文章

  • GoF - 行为模式

    责任链模式(Chain Of Responsiblity) 使多个对象都有机会处理请求,从而避免请求的发送者和接受...

  • GOF23设计模式

    GOF 23: 创建型模式 结构型模式 行为型模式 创建型模式: 单例模式 -该类只拥有一...

  • 设计模式值职责链模式(行为型)

    [TOC] 一、行为型模式 介绍职责链模式之前先介绍一下行为型设计模式,因为按照GoF模式分类,职责链就是一种行为...

  • 事件模式与观察者模式

    GOF设计模式中有一种叫做观察者模式(Observer),属于行为型模式。又叫发布-订阅(Publish/Subs...

  • 23种设计模式

    23种设计模式 GoF:(Gang of Four,GOF设计模式)---四人组 Design Pattern...

  • GOF的23种设计模式

    设计模式(Design Patterns) GOF的23种设计模式 GoF(“四人帮”,指Gamma, Helm,...

  • 设计模式--委派模式

    1、介绍 Delegate,不属于GOF23种模式,行为模式。主要角色有三种: 抽象任务角色, 委派者角色, 具体...

  • 工厂模式

    工厂模式 问题: 工厂模式分为几类? GOF 23种设计模式中,工厂方法模式和抽象工厂模式有什么区别? 不在GOF...

  • C++ 设计模式 —— 14.命令模式

    命令模式:一种行为型设计模式 应用场景:在GOF的《设计模式:可复用面向对象软件的基础》一书中对命令模式是这样说的...

  • 行为型模式(五):命令模式

    命令模式属于23种设计模式中行为模式中的一个,它也是一种简单实用非常普遍的设计模式。首先看下GOF对命令模式的定义...

网友评论

      本文标题:GoF - 行为模式

      本文链接:https://www.haomeiwen.com/subject/ezqitrtx.html