具体类(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