1,定义
定义算法框架,将一些步骤的实现延迟至子类,就是说把实现某一些功能会有一些重复的共有的步骤,放在公共的类中,将
不同的细节由其子类实现,例如炒菜,都要切菜,放油,和炒菜,但炒不同的菜需要放不同的调味料
2,代码实现
定义一个抽象类,将公共的方法提取出来构建模板方法,不同的则由其子类实现
/**
* create by hjiang
*/
public abstract class AbstractClass {
//模板方法
public final void CookingTemple(){
cutVegetable();
pourOil();
cooking();
}
public void cutVegetable(){
System.out.println("切菜....");
}
public void pourOil(){
System.out.println("倒油");
}
public abstract void cooking();
}
炒青菜。。
/**
*
*/
public class VageTables extends AbstractClass {
@Override
public void cooking() {
System.out.println("炒青菜:放蒜,放盐,加水");
}
}
炒肉。。
public class Pork extends AbstractClass {
@Override
public void cooking() {
System.out.println("炒肉:放蒜,放盐,放酱油");
}
}
public class test {
public static void main(String[] args) {
AbstractClass abstractClass=new Pork();
abstractClass.cooking();
abstractClass=new VageTables();
abstractClass.cooking();
}
}