具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。
public abstract class Bank {
public void takeNumber(){
System.out.println("取号排队");
}
/* 办理具体的业务*/
public abstract void transact();
public void evaluate(){
System.out.println("反馈评分");
}
public final void process(){
this.takeNumber();
this.transact();
this.evaluate();
}
}
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Bank bank = new Bank(){
@Override
public void transact() {
// TODO Auto-generated method stub
System.out.println("我要取钱");
}
};
bank.process();
}
}实现一个算法时,整体步骤很固定。但是,某些部分易变,易变部分可以抽象出来,供子类实现。
JAVA设计模式(17):行为型-模板方法模式(Template Method)
原文地址:http://blog.csdn.net/lovesomnus/article/details/45749905