模板模式:这种结构基本上是变动不大,但是中间的业务可以通过匿名内部类进行灵活替换或实现。
抽象结构模板:
package com.dasenlin.cn;
/**
* 模板方法模式
* @author Administrator
*
*/
public abstract class BankTemplateMethod {
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();//评分
}
}
具体实现的两种方式
package com.dasenlin.cn;
public class Client {
public static void main(String[] args) {
//通过继承实现类
BankTemplateMethod btm = new DrawMoney();
btm.process();
//采用匿名内部内
BankTemplateMethod btm2 = new BankTemplateMethod(){
@Override
public void transact() {
System.out.println("我要存钱?");
}
};
btm2.process();
}
}
class DrawMoney extends BankTemplateMethod{
@Override
public void transact() {
System.out.println("我要取款!");
}
}