模板模式详解

来源:互联网 发布:当前支付宝的淘宝账户 编辑:程序博客网 时间:2024/05/16 09:05

模板模式(Template)

模板模式:

定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。

 

模板方法模式的组成

父类角色:提供模板。

子类角色:为模板提供实现。

 

程序示例:

package com.zp.pattern.template;/** * 定义一个抽象的父类:提供模板,使子类可以有个统一的执行顺序; * 抽象类中既可以有抽象方法,也可以有具体方法,而接口只能有抽象方法; */public abstract class Template {    //具体方法来确定操作步骤的具体顺序(模板化):    public void doTemplate(){       this.method1();       this.method2();       this.method3();    }    //抽象方法来确定执行步骤:    public abstract void method1();    public abstract void method2();    public abstract void method3();}  package com.zp.pattern.template;/** * 子类角色:为模板提供具体实现。 */public class TemplateImpl extends Template {     @Override    public void method1() {       System.out.println("step1");    }     @Override    public void method2() {       System.out.println("step2");    }     @Override    public void method3() {       System.out.println("step3");    }       //可以通过重写来修改执行顺序的//  @Override//  public void doTemplate() {//     this.method3();//     this.method2();//     this.method1();//  }}  package com.zp.pattern.template; public class Test {    public static void main(String[] args) {       Template t = new TemplateImpl();       t.doTemplate();    }}

结果:step1

step2

step3

原创粉丝点击