准备知识:抽象类具有多态特性。
模板方法设计模式:整体步骤固定、通用,这些步骤已在父类中写好,把易变的部分抽象出来,供其不同的子类实现。
示例
父类
abstract class BankTemplate {
private void ticket(){
System.out.println("请排队取票");
}
//易变的部分
public abstract void code();
private void appraise(){
System.out.println("请评分");
}
//模板方法
public final void Bank(){
this.ticket();
this.code();
this.appraise();
}
}
子类
class Business extends BankTemplate{
//子类实现父类的易变方法
public void code(){
System.out.println("办理公司业务");
}
}
子类
class Person extends BankTemplate{
//子类实现父类的易变方法
public void code(){
System.out.println("办理私人业务");
}
}
测试模板方法
public class TrafficBank {
public static void main(String[] args) {
BankTemplate bt=new Business();
bt.Bank();
BankTemplate bk=new Person();
bk.Bank();
}
}