模板方法模式:算法
(就是在抽象基类中定一个复用的方法!)spa
在一个方法中定一个算法的骨架,而将一些步骤延迟到子类中。code
模板方法使得子类能够再不改变算法结构的状况下,从新定义算法中的某些步骤。blog
实例:it
泡茶的步骤分别:io
一、把水煮开模板
二、用开水冲泡茶叶class
三、把茶倒进杯子里原理
四、加柠檬方法
泡咖啡的步骤为:
一、把水煮开
二、用开水冲泡咖啡
三、把咖啡倒进杯子里
四、加糖
泡茶和泡咖啡的流程基本类似,因此能够放在一块儿,用下面的这个过程实现。
一、把水煮开
二、用开水冲泡
三、倒进杯子里
四、加调料
把这么这一个步骤封装成一个方法,这个方法就是模板方法。
void blunkDrinks() { // 依次是每一个步骤 boilWater(); brew(); pourIncup(); addConditions(); }
void boilWater()
{
// 具体实现
}
void addCondition()
{
// 具体实现
}
abstract void brew(); // 抽象方法,在对应的茶或咖啡类中具体实现
abstract void addConditions(); // 抽象方法,在对应的茶或咖啡类中具体实现
原理:
一、抽象出一个抽象类,在这个类里面实现一个模板方法
二、模板方法里面包含一系列步骤(一系列方法),共用方法在抽象类中实现,特殊方法在子类中实现
应用实例:
JAVA Swing