zoukankan      html  css  js  c++  java
  • java 设计模式之模板方法

    java 中的模板模式:

      理解:在定义功能时,功能的一部分是确定的,但是有另一部分不确定,而确定的部分中在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。

      也即是在一个类中的某个方法中,部分确定,并且该方法包括不确定的方法,也就是抽象方法,随之该类为抽象类,继承该抽象方法即可实现该不确定的方法。

      

      用意:模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。是基于继承的代码复用的基本技术。

      模板方法所代表的行为称为顶级行为,其逻辑称为顶级逻辑。

      

     1 /*
     2 需求:获取一段程序运行的时间。
     3 原理:获取程序开始和结束的时间并相减即可。
     4 
     5 获取时间:System.currentTimeMillis();
     6 
     7 当代码完成优化后,就可以解决这类问题。
     8 
     9 这种方式,模版方法设计模式。
    10 
    11 什么是模版方法呢?
    12 在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,
    13 那么这时就将不确定的部分暴露出去。由该类的子类去完成。
    14 
    15 
    16 */
    abstract class GetTime
    {
        public final void getTime()
        {
            long start = System.currentTimeMillis();
    
            runcode();
    
            long end = System.currentTimeMillis();
    
            System.out.println("毫秒:"+(end-start));
        }
        public abstract void runcode();
    
    }
    
    
    class SubTime extends GetTime
    {
    
        public void runcode()
        {
            
            for(int x=0; x<4000; x++)
            {
                System.out.print(x);
            }
        }
    }
    
    
    class  TemplateDemo
    {
        public static void main(String[] args) 
        {
            //GetTime gt = new GetTime();
            SubTime gt = new SubTime();
            gt.getTime();
        }
    }

    参考地址:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html

  • 相关阅读:
    poj 3254 Corn Fields 状压dp
    poj 1330 Nearest Common Ancestors LCA/DFS
    poj1182 食物链 带权并查集 偏移量
    ural 1019. Line Painting 线段树 离散化
    zoj 2301 || hdu 1199 Color the Ball 线段树 离散化
    poj 1195 Mobile phones 二维树状数组
    poj 2155 Matrix 二维树状数组
    poj3067 Japan 树状数组 逆序数
    OpenWRT Init (User space boot) reference for Chaos Calmer: procd
    怎样写一个基于procd的init脚本
  • 原文地址:https://www.cnblogs.com/itcqx/p/5590851.html
Copyright © 2011-2022 走看看