text: 责任链模式
  - 一个请求需要被多个对象中的某一个处理，但是到底是哪个对象必须在运行时根据条件决定，每个请求要么最多有一个处理者对其进行处理，要么没有任何处理者对其进行处理
  - 处理者接口定义共同的方法,一般setNextHandler(handler)和execute()方法
  - 依次创建具体处理者子类并实现其处理方法。每个处理者在接收到请求后都必须做出两个决定,是否自行处理这个请求和是否将该请求沿着链进行传递
  命令模式
  - 命令模式有4个参与角色.Command命令接口,ConcreteCommand具体的执行命令，他们需要实现Command接口且持有Receiver,Receiver真正执行命令的角色，那些具体的命令引用它，让它完成命令的执行,Invoker负责按照客户端的指令设置并执行命令，像命令的撤销，日志的记录等功能都要在此类中完成
  - 声明仅有一个执行方法的命令接口
  - 抽取请求并使之成为实现命令接口的具体命令类。每个类都必须有一组成员变量来保存请求参数和对于实际接收者对象的引用。所有这些变量的数值都必须通过命令构造函数进行初始化
  - 找到担任发送者职责的类。在这些类中添加保存命令的成员变量。发送者只能通过命令接口与其命令进行交互。发送者自身通常并不创建命令对象，而是通过客户端代码获取
  - 修改发送者使其执行命令，而非直接将请求发送给接收者
  迭代器模式
  - 迭代器模式是一种行为设计模式，让你能在不暴露集合底层表现形式（列表、栈和树等）的情况下遍历集合中所有的元素
  中介者模式
  - 中介者模式建议你停止组件之间的直接交流并使其相互独立。这些组件必须调用特殊的中介者对象，通过中介者对象重定向调用行为，以间接的方式进行合作。最终，组件仅依赖于一个中介者类，无需与多个其他组件相耦合
  - 声明中介者接口并描述中介者和各种组件之间所需的交流接口。在绝大多数情况下，一个接收组件通知的方法就足够了
  - 实现具体中介者类。该类可从自行保存其下所有组件的引用中受益
  - 组件必须保存对于中介者对象的引用。该连接通常在组件的构造函数中建立，该函数会将中介者对象作为参数传递
  - 修改组件代码，使其可调用中介者的通知方法，而非其他组件的方法。然后将调用其他组件的代码抽取到中介者类中，并在中介者接收到该组件通知时执行这些代码