模板模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。封装了共同的不变部分,扩展了可变部分,可变的部分让子类具体实现。
看代码:
抽象模板类
package com.wanq.designmode.template;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:10:24
* @类说明:
* 抽象模板类
*/
public abstract class AbstractClass {
// 基本方法
protected abstract void doSomething();
// 基本方法
protected abstract void doAnything();
//模板方法
public void templateMethod(){
/**
* 调用基本方法,完成逻辑
*/
doSomething();
doAnything();
}
}
具体模板类:
package com.wanq.designmode.template;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:14:28
* @类说明:
* 具体模板类
*/
public class ConcreateClass1 extends AbstractClass {
@Override
protected void doSomething() {
// TODO Auto-generated method stub
}
@Override
protected void doAnything() {
// TODO Auto-generated method stub
}
}
应用场景:
package com.wanq.designmode.template;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:15:21
* @类说明:
*
*/
public class Client {
public static void main(String[] args){
ConcreateClass1 class1 = new ConcreateClass1();
ConcreateClass2 class2 = new ConcreateClass2();
// 调用模板方法
class1.templateMethod();
class2.templateMethod();
}
}