标签:
模板方法比较好理解,就是为了避免代码冗余,实现代码服用的功能。比如说最常见的泡茶和泡咖啡,两个之间有很多共同点,都需要烧水,都需要把水倒入杯中,那么这些重复的方法可以抽离出来,放在父类当中,至于两者之间不同的方法,写一个抽象类,让不同的子类去重写父类即可。
代码
模板类
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