设计模式 (4) ——模板模式 <IT小鸟每日一遍>

来源:互联网 发布:prize软件百度云 编辑:程序博客网 时间:2024/05/20 18:55

模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。封装了共同的不变部分,扩展了可变部分,可变的部分让子类具体实现。

看代码:

抽象模板类

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 {@Overrideprotected void doSomething() {// TODO Auto-generated method stub}@Overrideprotected 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();}}