设计模式——模板方法模式

模板方法模式:定义完成一件事情的框架,将一些步骤延迟到子类中(实际上是交由子类去做),使得可以不改变算法结构即可重新定义某些步骤;

角色:抽象类(一个非抽象方法和若干抽象),具体类(继承于抽象类)

优点:使得系统结构组成有层次,有条理;减少代码量,减少不必要的重复代码(抽象类实现的代码不必在每个具体类中实现了)

以我司生产环境中的一个实例来看:

经常需要通过HTTP协议获取数据,并做相应处理:

抽象类:

public abstract class HtmlUpdator {
    abstract public String getUrl();//获取URL

    abstract void analyze(String text);//对返回的内容的处理方式

    public void update() {
       ...
       String resp = HttpUtils.getHTML(getUrl(), 500, 500);
       if (resp != null) {
           analyze(text);
       }
    }
}

实现类:

public class AqiCurrentUpdator extends HtmlUpdator {
    @Override
    public String getUrl() {
        return "http://www.baidu.com";
    }
    
    @Override
    void analyze(String text) {
      ...
    }
}

调用:

new CaiyunAqiCurrentUpdator().update();

 模板方法和建造者模式的区别:

一个是行为模式,一个是创建型模式;

建造者目的是创建一个复杂对象,将创建和展现分开;

模板方法是定义一类事情的流程,侧重的是处理方式的抽象。

 

 

===========================设计模式系列文章=========================

简单工厂模式

工厂方法模式

抽象工厂模式

建造者模式

原型模式

适配器模式

桥接模式

装饰模式

代理模式

组合模式

门面模式

享元模式

责任链模式

命令模式

中介者模式

备忘录模式

观察者模式

状态模式

策略模式

模板方法模式

访问者模式

posted @ 2017-03-02 19:45  沙中世界  阅读(488)  评论(0编辑  收藏  举报