十三、模板设计模式

/*
模板设计模式:实现一个功能时,功能的一部分是确定的,一部分是不确定的,确定的部分还会用到
              不确定的部分,那么就把不确定的部分暴露出去,让子类去实现

实现计算一个程序的运行时间:
记录一个开始时间和一个结束时间,两个时间相减就是运行时间
*/
abstract class CalTime
{
    public final void runTime()
    {
        //记录开始时间
        long start=System.currentTimeMillis();
        fun();
        //记录结束时间
        long end=System.currentTimeMillis();

        System.out.println("程序运行时间为:"+(end-start));
    }

    public abstract void fun();
}
class MyTest extends CalTime
{
    public void fun()
    {
       for(int i=1;i<=3000;i++)
        {
          System.out.println(i);
        }
    }
}
class Demo17
{
    public static void main(String[] args)
    {
        MyTest t=new MyTest();
        t.runTime();
    }
}
时间: 2024-10-28 12:06:50

十三、模板设计模式的相关文章

自己瞎捉摸学习:十三种设计模式之模板方式设计

模板方式就是将对象分为可变与不可变得部分,就例如spring_mvc中的共有行为和特有行为,将不可变的部分封装起来,提供给需要此类对象操作的用户,然后将再有用户对对可变部分进行自己的进一步处理,就例如springmvc中的特有行为. 目前已用的模板设计模式, 1,JDBCtemplate 顾名思义,在操作数据库连接池对数据库进行CRUD时,其中的某些步骤的固定不定的,例如注册驱动,获取连接对象等,而JDBCTemplate就是对这些共性进行了封装 我们使用时只需创建此类对象,然后对对象进行可变行

模板设计模式

模板设计模式概述 模板方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现 优点 使用模板方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求 缺点 如果算法骨架有修改的话,则需要修改抽象类 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStr

实际开发中的模板设计模式

最近的项目中,在使用spring+springJBDC 开发时,从一开始的一脸懵逼到越来越顺手,着一切,都归功于一大堆的封装方法.在这里,记录两个非常有用方法以便查阅学习 一. 组合查询的基础类(BaseCondition) 该类中,抽取了常用的组合查询的公共属性和方法,例如:分页查询中使用的 pagaSize// 页大小.pageNumber// 当前页码.rowCount;// 记录总数 rowCount;// 记录总数 拼接sql语句使用的多个重载add()方法,更据不同数据类型重载; 最

Java设计模式之模板方法模式或者说模板设计模式(属于行为型)

抽象类,不变的代码写了,要变化的部分留给子类去实现: package 行为型_模板方法模式; //模板设计模式的意思是把不变定位部分写出来,变化的部分留给子类去实现 public abstract class GetTime { public long getTime() throws Exception{ long start = System.currentTimeMillis();//开始时间 /* //for循环 for(int i=0;i<10000;i++){ System.out.

C#模板设计模式

一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板设计模式,来解决这个问题 二,模板设计模式思路:是把相同的部分抽象出来到抽象类中去定义,具体子类来继承抽象类,并实现抽象类中的抽象方法,从而达到具体实现的不同部分,这个思路也正式模板方法的实现精髓所在 三,如下例子: using System; using System.Collections.Ge

黑马程序员-模板设计模式-获取程序的运行时间!

package com.qumibao.www; //获取一段程序的运行时间. /* 思路: 1.定义一个获取时间的抽象类 2.定义一个子类集成该抽象类. 2.定义一个方法.只需获取该程序的开始时间与结束时间并相减即可,由于时间长度不确定,用long类型来定义变量. 3.获取当前时间API中提供了System中的相关方法. System.currentTimeMills(); */ abstract class GetTime{ public void getTime(){ long start

二十三种设计模式——工厂模式

二十三种设计模式--工厂模式 简单工厂模式 简单工厂模式又称静态工厂方法(StaticFactory Method)模式,不属于23种模式之一. 简单工厂模式是工厂模式最简单使用的模式. 类图: 程序: #include <iostream> #include<string> using namespace std; class NationalFlag//父类 { public: NationalFlag(){} ~NationalFlag(){} virtual void di

Java 设计模式 ------ 模板设计模式

模板设计模式主要来源于生活中有一些事情是有模板可以遵循的.举两个生活中的例子,如泡茶和泡咖啡,看一看. 泡茶有以下四个步骤:  1, 烧开水;  2 把茶放到水杯中; 3,倒入开水; 4, 加糖. 泡咖啡也同样有以下四个步骤: 1, 烧开水;  2 把咖啡放到水杯中; 3,倒入开水; 4, 加入糖和牛奶. 这时,可以清楚地发现,无论是泡茶还是泡咖啡,它们的步骤几乎是相同的:1,开水, 2 放入水杯,3 倒入开水,4 加调味剂.只有具体到泡某种饮料时,它们有些步骤才不同,泡茶肯定是要把茶放到水杯中

C#模板设计模式使用和学习心得

模板设计模式: 模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种: 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现. 模版方法:由抽象类声明并加以实现.一般来说,模版方法调用抽象方法来完成主要的逻辑功能,并且,模版方法大多会定义为final类型,指明主要的逻辑功能在子类中不能被重写. 钩子方法:由抽象类声明并加以实现.但是子类可以去扩展,子类可以通过扩展钩子方法来影响模版方法的逻辑. 抽象类的任务是搭建逻辑的框架,通常由经验丰富的人