模板方法设计模式:
定义:定义一个算法的抽象类,让子类实现具体的算法。模板方法使得子类不能修改算法的结构,只能修改算法的特定步骤。
优点:易于扩展,便于维护,比较灵活
缺点:当结构修改的时候,需要修改其抽象类。
代码实现:
public abstract class AbstarctMode {
public final void buySomething(){
System.out.println("挑选衣服");
buy();
System.out.println("购物完毕回家");
}
//结账抽象类
public abstract void buy();
}
子类实现:
class BuyByCash extends AbstarctMode{
@Override
public void buy() {
System.out.println("现金结账");
}
}
class BuyByCad extends AbstarctMode{
@Override
public void buy() {
System.out.println("刷卡结账");
}
}
class BuyByZhifubao extends AbstarctMode{
@Override
public void buy() {
System.out.println("支付宝结账");
}
}
测试类:
public class Main {
public static void main(String[] args) {
BuyByZhifubao b = new BuyByZhifubao();
b.buySomething();
}
}
输出结果:
挑选衣服
支付宝结账
购物完毕回家