【Template Method模式】
父类定义处理流程的框架,子类实现具体处理。
组成模板的方法被定义在父类中。由于这些方法时抽象方法,所以只查看父类的代码是无法知道这些方法最终会进行何种具体的处理。
实现抽象方法的是子类。在子类中实现了抽象方法决定了具体处理。只要在不同的子类中实现不同的具体处理,当父类的模板方法被调用时程序行为也会不同。但是,不论子类中的具体实现如何,处理的流程都会按照父类所定义的进行。
【子类责任】
父类声明抽象方法期望并要求子类去实现抽象方法,也就说子类具有责任实现在父类中所声明的抽象方法的责任。这种责任被成为“子类责任"。
【抽象类的意义】
由于在抽象方法种并没有编写具体的实现,但是可以通过调用了抽象方法的模板方法去编写处理。虽然处理由子类决定,但是在抽象类阶段确定处理的流程非常重要。
模板方法模式中,使用继承改变程序的行为。
策略模式中,使用委托改变程序的行为。策略模式用于替换整个算法。
【大话设计模式】策略模式_暮色_年华的博客