行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。
类行为模式使用继承机制在类间分派行为。Template Method是一个算法的抽象定义,它逐步地定义该算法,每一步调用一个抽象操作或一个原语操作,子类定义抽象操作以具体实现该算法。Interpreter将一个文法表示为一个类层次,并实现一个解释器作为这些类的实例上的一个操作。
对象行为模式使用对象的组合而不是继承。
1. Command模式
对象行为型模式
意图
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。
效果
Command模式将调用操作的对象与知道如何实现该操作的对象耦合。
2. Strategy模式
对象行为型模式
意图
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
3. Template Method模式
类行为型模式
意图
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
效果
模板方法是一种代码复用的基本技术。模板方法导致一种反向的控制结构,这种结构有时被称为“好莱坞法则”,即“别找我们,我们找你”。这指的是一个父类调用一个子类的操作,而不是相反。