模板方法

模板方法定义一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类在不改变算法架构的情况下,重新定义算法中的某些步骤。

模板方法模式实现

1. 定义一个抽象类,里面有给子类实现的具体逻辑方法,也有一些公共的业务逻辑方法。2. 定义具体实现类,来自定化自己的实现逻辑。

命令模式

将一个请求封装为一个对象,让发出请求的任务和执行的任务分割开。

命令模式实现

1. 定义命令的执行者,里面执行具体的业务逻辑。2. 定义具体的命令,该对象中会将具体的命令执行者作为参数接收,调用操作。

迭代器模式

迭代器模式,提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

观察者模式

一个目标对象管理所有相依于它的观察者对象,在它本身的状态发生改变的时候,主动发出通知,观察它的对象将会收到通知,做一些具体操作。所以观察者模式又叫做发布-订阅模式。

观察者模式实现

1. 理清观察者被被通知者之间的关系。2. 定义一个抽象的被通知者接口。

中介者模式

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

中介者模式实现

1. 理清各个业务类对象之间的关系,判断是不是复杂的两两依赖关系,把他们当作顾客类。 2. 定义中介者类,在里面将顾客的信息维护注册,并且顾客在注册的时候,也将中介者信息维护。里面会定义一些方法,用来处理顾客之间的信息交互(方法调用逻辑)。

备忘录模式

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后需要的时候能够将该对象恢复到原先保存的状态。

备忘录模式实现

1. 理清业务类,该类继续处理自己要做的业务逻辑。 2. 定义一个容器类,这个容器类用来存储业务类的不同状态下的对象。

状态模式

允许一个对象在其内部状态改变的时候改变它的行为,对象看起来是别的类修改了它的类。

状态模式实现

允许一个对象在其内部状态改变的时候改变它的行为,对象看起来是别的类修改了它的类。

策略模式

定义一系列的算法,将每个算法封装起来,并且让它们可以相互的替换。算法的变更对于客户端而言是无感知的。

策略模式实现

1. 定义一个抽象的业务类。2. 定义具体的业务实现类,里面处理自己特有的业务逻辑。

责任链模式

一个请求有多个对象来处理,这些对象使一个链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链表中的下一个对象,直到有对象处理它为止。

责任链模式实现

1. 定义一个抽象的实现类,里面要定义一个 next 的指针。2. 定义具体的实现类,里面实现具体的实现逻辑,并且给 next 指针赋值。

访问者模式

将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问模式。

访问者模式实现

1. 理清元素信息,定义一个抽象的元素类,里面包含了一个方法,用来接收访问者。 2. 定义真实的抽象元素的实现类,实现自己的特有方法。

解释器模式

定义一个语法规则,然后再定义一个解析器去解析该语法。