模板方法模式的定义: 在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤
uml图(暂略)
例子:
public abstract class beveragebase { /** * 该方法封装的算法的骨架 */ public void makebeverage() { //从饮料分3步,第1步烧开水,2 冲泡 , 3 倒入杯中 boilwater(); brew(); pourincup(); } /** * 烧开水算法是一样的 */ public void boilwater() { system.out.println("boil water..."); } /** * 不同饮料的冲泡不一样,声明为抽象方法,由子类实现 */ public abstract void brew(); /** * 倒入杯中的算法是一样的 */ public void pourincup() { system.out.println("pour in cup..."); }}public class coffee extends beveragebase { @override public void brew() { system.out.println("brew coffee..."); } }public class tea extends beveragebase { @override public void brew() { system.out.println("brew tea..."); } }