模板方法模式比较简单,我们日常的编程中,其实基本上也用到了很多模板方法模式。它的主要特点是,抽取公共的部分到父类中,将变化的部分作为抽象方法,留给子类进行重写。
模板方法的定义如下:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
下面我们来一些小demo
比如我们要做饭,假设做饭的固定步骤是:蒸米饭,炒菜,上菜。其中蒸米饭和上菜是固定的步骤,而炒的菜是千差万别。所以我们可以用模板模式来写一个demo
首先是做饭的父类
public abstract class Cook {
public void makeRice() {
System.out.println("蒸米饭");
}
public void serveFood(){
System.out.println("上菜");
}
public abstract void cookFood();
public void startCook(){
makeRice();
cookFood();
serverFood();
}
}
然后是两个具体的子类,分别实现不同的炒菜方法
public class CookA{
@Override
public void cookFood(){
System.out.println("红烧鱼");
}
}
public class CookB{
@Override
public void cookFood(){
System.out.println("鱼香肉丝");
}
}
然后测试如下
Cook cookA = new CookA();
Cook cookB = new CookB();
cookA.startCook();
cookB.startCook();
相关demo可以参考我的gitee仓库
https://gitee.com/akitsuki-kouzou/DesignPatternDemo
3019

被折叠的 条评论
为什么被折叠?



