标签:
模板方法比较好理解,就是为了避免代码冗余,实现代码服用的功能。比如说最常见的泡茶和泡咖啡,两个之间有很多共同点,都需要烧水,都需要把水倒入杯中,那么这些重复的方法可以抽离出来,放在父类当中,至于两者之间不同的方法,写一个抽象类,让不同的子类去重写父类即可。
代码
模板类
package template;
public abstract class Template {
public void prepare(){
boilWater();
brew();
pourCup();
}
// 烧水
public void boilWater() {
System.out.println("把水烧开");
}
public abstract void brew();
// 倒入杯子中
public void pourCup() {
System.out.println("倒入杯中");
}
}
泡咖啡
package template;
public class GetCoffee extends Template {
@Override
public void brew() {
System.out.println("泡咖啡");
}
}
泡茶
package template;
public class GetTea extends Template {
@Override
public void brew() {
System.out.println("泡茶");
}
}
测试类
package template;
public class Test {
public static void main(String[] args) {
//泡茶
GetTea tea = new GetTea();
tea.prepare();
//泡咖啡
GetCoffee coffee=new GetCoffee();
coffee.prepare();
}
}
结果
把水烧开 泡茶 倒入杯中 把水烧开 泡咖啡 倒入杯中
标签:
原文地址:http://www.cnblogs.com/JAYIT/p/5063432.html