行为型设计模式
本文简要介11种类行为型设计模式。
命令(Command)
命令模式,强调将请求封装成对象,进而实现请求排队、记录和撤销等功能。
中介(Mediator)
中介模式,强调在另一个类中集中管理另外几个类的通信。
解释器(Interpreter)
解释器模式,该模式使用场景比较单一,多用于将句子表示成一个抽象语法树,结构与组合模式类似。
使用时会传递一个上下文对象,用于给计算提供数据。
迭代器(Iterator)
迭代器模式,强调为不同的聚合对象提供统一的访问接口,而不暴露聚合对象的内部接口,从而面向用户控制复杂度。
备忘录(Memento)
备忘录模式,强调在不破坏封装性的前提下,捕获一个对象的内部状态,并在外部保存,以便于后期恢复该状态。
职责链(Chain of Responsibility)
职责链模式,强调让一个请求被多个对象处理,这些对象连成一条链。
状态(State)
状态模式,常用于实现状态机,在实现状态子类的动作函数时,会根据状态子类的不同来实现不同的逻辑,并且可以切换状态机的状态,从而驱动状态机的运转。采用这种方式非常容易扩展新的状态。
从类图角度来看,基本和策略模式一样,两者的出发点不一样。
观察者(Observer)
观察者模式,侧重于在一个类的状态发生变化时,同时通知多个类实例。常用于实现“发布-订阅”机制。
策略(Strategy)
策略模式,强调对不同算法的封装,从而实现算法的灵活切换。
其类图类似桥接模式。
模板方法(Template Method)
模板方法模式,在父类的模板方法中编写了某操作的整体流程,但该流程中的某些步骤需要子类延迟实现。该设计模式在框架设计中被广泛使用。
访问者(Visitor)
访问者模式,强调在不改变类的情况下为对象结构中的各元素添加操作。