模板方法模式

定义

Template Method Pattern:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。

类图

角色

  • 抽象类 (AbstractClass):会声明作为算法步骤的方法, 以及依次调用它们的实际模板方法。 算法步骤可以被声明为抽象类型, 也可以提供一些默认实现。
  • 具体类 (ConcreteClass):可以重写所有步骤, 但不能重写模板方法自身。
Read More

命令模式

定义

Command Pattern:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。
命令模式的别名为动作(Action)模式或事务(Transaction)模式。

类图

角色

  • 客户端(Client)角色:创建一个具体命令(ConcreteCommand)对象并确定其接收者。
  • 命令(Command)角色:声明了一个给所有具体命令类的抽象接口。
Read More

中介者模式

定义

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

类图

角色

  • 抽象中介者(Mediator):定义出同事对象到中介者对象的接口,其中主要方法是一个(或多个)事件方法。
  • 具体中介者(ConcreteMediator):实现了抽象中介者所声明的事件方法。具体中介者知晓所有的具体同事类,并负责具体的协调各同事对象的交互关系。
Read More