行为型设计模式

本文简要介11种类行为型设计模式。

命令(Command)

命令模式,强调将请求封装成对象,进而实现请求排队、记录和撤销等功能。

中介(Mediator)

中介模式,强调在另一个类中集中管理另外几个类的通信。

解释器(Interpreter)

解释器模式,该模式使用场景比较单一,多用于将句子表示成一个抽象语法树,结构与组合模式类似。
使用时会传递一个上下文对象,用于给计算提供数据。

迭代器(Iterator)

迭代器模式,强调为不同的聚合对象提供统一的访问接口,而不暴露聚合对象的内部接口,从而面向用户控制复杂度。

备忘录(Memento)

备忘录模式,强调在不破坏封装性的前提下,捕获一个对象的内部状态,并在外部保存,以便于后期恢复该状态。

职责链(Chain of Responsibility)

职责链模式,强调让一个请求被多个对象处理,这些对象连成一条链。

状态(State)

状态模式,常用于实现状态机,在实现状态子类的动作函数时,会根据状态子类的不同来实现不同的逻辑,并且可以切换状态机的状态,从而驱动状态机的运转。采用这种方式非常容易扩展新的状态。
从类图角度来看,基本和策略模式一样,两者的出发点不一样。

观察者(Observer)

观察者模式,侧重于在一个类的状态发生变化时,同时通知多个类实例。常用于实现“发布-订阅”机制。

策略(Strategy)

策略模式,强调对不同算法的封装,从而实现算法的灵活切换。
其类图类似桥接模式。

模板方法(Template Method)

模板方法模式,在父类的模板方法中编写了某操作的整体流程,但该流程中的某些步骤需要子类延迟实现。该设计模式在框架设计中被广泛使用。

访问者(Visitor)

访问者模式,强调在不改变类的情况下为对象结构中的各元素添加操作。

评论