zoukankan      html  css  js  c++  java
  • 设计模式(三)模版方法(行为型)

    模板方法模式:定义一个算法的执行骨架,将具体的算法实现延迟到子类完成。

    模板方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本方法汇总起来的方法叫做模板方法(template method),这个设计模式的名字就是从此而来。

    举个例子: 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同。

    代码说明一切                                                                                

    这里,代码以一个看模版方法用了多少时间的例子来说明一下:

    package com.yydcdut.java2;
    
    public abstract class GetTime {
        public void getTime()
        {
            long time1 = System.currentTimeMillis();
            this.doSomething();
            long time2 = System.currentTimeMillis();
            System.out.println("耗时:"+(time2-time1));
            
        }
        
        public abstract void doSomething();
    }
    package com.yydcdut.java2;
    
    public class Demo extends GetTime {
    
        @Override
        public void doSomething() {
            for(int i=0;i<10000;i++)
                System.out.println(""+i);
    
        }
    
    }
    package com.yydcdut.java2;
    
    public class Main {
        public static void main(String[] args) {
            GetTime gt = new Demo();
            gt.getTime();
        }
    }

    总结                                                                                          

    模板方法模式:抽象的骨架类,具体的实现类。

    优点:使用模板方法模式,在定义算法骨架的时候,可以灵活的实现具体的算法。满足用户多变的需求。

    缺点:假如算法骨架有改动,就需要修改抽象类,那么,具体的实现类,也会跟着修改。

    我是天王盖地虎的分割线                                                               

    源代码:http://pan.baidu.com/s/1dD1Qx01

    java模版.zip

    转载请注明出处:http://www.cnblogs.com/yydcdut

  • 相关阅读:
    Python--BeautifulSoup4丶Tag丶Xpath丶requests+re的基础学习及使用
    c#字符串字面量
    vim操作
    序列的方法
    python数值类型与序列类型
    Linux操作学习笔记1
    Jav的10个面向对象设计原则
    JAVA面向对象基础
    二进制 八进制 十六进制
    using 的故事
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3842819.html
Copyright © 2011-2022 走看看