码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-12 模板模式

时间:2016-08-16 00:29:53      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

一 模板模式

  定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。也就是说:假如某些操作代码基本相同,只是其中一部分会经常改变,则可以使用模板方法,将不变的部分作为一个模板,将容易变动的部分让子类来实现。

关键代码:在抽象类实现,其他步骤在子类实现。

使用场景:

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");

    }

}

 

设计模式-12 模板模式

标签:

原文地址:http://www.cnblogs.com/wangshuo1/p/5774732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!