标签:
定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。也就是说:假如某些操作代码基本相同,只是其中一部分会经常改变,则可以使用模板方法,将不变的部分作为一个模板,将容易变动的部分让子类来实现。
关键代码:在抽象类实现,其他步骤在子类实现。
使用场景:
Spirng 中对 Jdbc的支持
类图 :
1 例子1
1) 回调接口
ICallBack.java
public interface ICallBack { String doCallBack(); String sayHello(String name); }
2) 调用者
Invoker.java
public class Invoker { private ICallBack callback; // 调用实现类的方法 public void setCallback(ICallBack callback) { this.callback = callback; } // 业务需要的时候,通过委派,来调用实现类的具体方法 public void doCallback() { System.out.println(callback.doCallBack()); } public void sayHello(String name){ System.out.println(callback.sayHello(name)); } }
3) 测试回调函数
TemplateDemo.java
public class TemplateDemo { public static void main(String[] args) { Invoker invoker = new Invoker(); invoker.setCallback(new ICallBack() { public String doCallBack() { return "hello, It is " + new Date(); } @Override public String sayHello(String name) { return "hello " + name; } }); invoker.doCallback(); invoker.sayHello("wangwu"); } }
标签:
原文地址:http://www.cnblogs.com/wangshuo1/p/5774732.html