「生活可以更简单, 欢迎来到我的开源世界」
  1. 命令模式(Command)(⭐⭐⭐⭐)
  2. 解释器模式(Interpreter)(⭐)
    1. 模式动机
    2. 模式定义
    3. 模式结构
    4. 模式分析
    5. 实例
    6. 优点
    7. 缺点
    8. 适用环境
    9. 模式应用
    10. 模式拓展
    11. 总结
  3. 迭代器模式(Iterator)(⭐⭐⭐⭐⭐)
  4. 中介者模式(Mediator)(⭐⭐)
  5. 备忘录模式(Memento)(⭐⭐)
  6. 观察者模式(Observer)(⭐⭐⭐⭐⭐)
  7. 状态模式(State)(⭐⭐⭐)
  8. 策略模式(Strategy)(⭐⭐⭐⭐)
  9. 模板方法模式(Template Method)(⭐⭐⭐)
  10. 访问者模式(Visitor)(⭐)
  11. 职责链模式(Chain of Responsibility)(⭐⭐⭐)
行为型模式
2021-01-02

行为型模式

行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。

行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。

通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象 之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。

行为型模式分为类行为型模式和对象行为型模式两种:

命令模式(Command)(⭐⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

解释器模式(Interpreter)(⭐)

模式动机

在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。

命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。这就是命令模式的模式动机。

模式定义

命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。

模式结构

命令模式包含如下角色:

模式分析

命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开。

实例

电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作。抽象命令角色由一个命令接口来扮演,有三个具体的命令类实现了抽象命令接口,这三个具体命令类分别代表三种操作:打开电视机、关闭电视机和切换频道。显然,电视机遥控器就是一个典型的命令模式应用实例。

优点

缺点

使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。

适用环境

模式应用

很多系统都提供了宏命令功能,如UNIX平台下的Shell编程,可以将多条命令封装在一个命令对象中,只需要一条简单的命令即可执行一个命令序列,这也是命令模式的应用实例之一。

模式拓展

宏命令又称为组合命令,它是命令模式和组合模式联用的产物。

宏命令也是一个具体命令,不过它包含了对其他命令对象的引用,在调用宏命令的execute()方法时,将递归调用它所包含的每个成员命令的execute()方法,一个宏命令的成员对象可以是简单命令,还可以继续是宏命令。执行一个宏命令将执行多个具体命令,从而实现对命令的批处理。

总结

迭代器模式(Iterator)(⭐⭐⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

中介者模式(Mediator)(⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

备忘录模式(Memento)(⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

观察者模式(Observer)(⭐⭐⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

状态模式(State)(⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

策略模式(Strategy)(⭐⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

模板方法模式(Template Method)(⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

访问者模式(Visitor)(⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

职责链模式(Chain of Responsibility)(⭐⭐⭐)

模式动机

模式定义

模式结构

模式分析

实例

优点

缺点

适用环境

模式应用

模式拓展

总结

<⇧>