【模板设计模式】

package package8;
abstract class Model{
    public void model_function(){
        step1();
        step2();
        step3();
        System.out.println("Finished!");
    }
    public abstract void step1();
    public abstract void step2();
    public abstract void step3();
}
class Demo1 extends Model{
    public void step1(){
        System.out.println("Demo1的第1步方法");
    }
    public void step2(){
        System.out.println("Demo1的第2步方法");
    }
    public void step3(){
        System.out.println("Demo1的第3步方法");
    }
}
class Demo2 extends Model{
    public void step1(){
        System.out.println("Demo2的第1步方法");
    }
    public void step2(){
        System.out.println("Demo2的第2步方法");
    }
    public void step3(){
        System.out.println("Demo2的第3步方法");
    }
}
class Test{
    public static void main(String[] args){
        Demo1 d1=new Demo1();
        Demo2 d2=new Demo2();
        System.out.println("开始实例1对于模板的特有方法:");
        d1.model_function();
        System.out.println("开始实例2对于模板的特有方法:");
        d2.model_function();
}
}

运行结果:

开始实例1对于模板的特有方法:

Demo1的第1步方法

Demo1的第2步方法

Demo1的第3步方法

Finished!

开始实例2对于模板的特有方法:

Demo2的第1步方法

Demo2的第2步方法

Demo2的第3步方法

Finished!

时间: 2024-11-10 23:20:12

【模板设计模式】的相关文章

模板设计模式

模板设计模式概述 模板方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现 优点 使用模板方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求 缺点 如果算法骨架有修改的话,则需要修改抽象类 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

十三、模板设计模式

/* 模板设计模式:实现一个功能时,功能的一部分是确定的,一部分是不确定的,确定的部分还会用到 不确定的部分,那么就把不确定的部分暴露出去,让子类去实现 实现计算一个程序的运行时间: 记录一个开始时间和一个结束时间,两个时间相减就是运行时间 */ abstract class CalTime { public final void runTime() { //记录开始时间 long start=System.currentTimeMillis(); fun(); //记录结束时间 long en

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

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

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

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

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

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

二、 抽象类延伸出的模板设计模式

具体可参考:https://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html 模板设计模式的关键:子类可以置换掉父类的可变部分,但是子类却不可以改变模板方法所代表的顶级逻辑 示例: public abstract class AbstractTemplate { /** * 模板方法 */ public void templateMethod() { // 调用基本方法 abstractMethod(); hookMetho

Template Method 模板设计模式

什么是模板设计模式 对于不了解的模板设计模式的来说,可以认为如同古代的造纸术一样,纸所以成型,取决于用了模板的形状,形状又由镂空的木板组成,而你想要造什么纸,又取决于你使用什么材料. 上面提到了两个关键点 <> <> 定义: 如同我们在父类中定义处理流程的框架,而在子类中实现具体处理的模板称之为template method 模板设计模式 具体到面向对象 <> 在对象中我们描述为 抽象类: 定义过程pdl <> 在对象中我们描述为 具体行为的子类: UML