zoukankan      html  css  js  c++  java
  • Java 实现模板方法(TemplateMethod)模式

    类图


    /**
     * 业务流程模板。提供基本框架
     * @author stone
     *
     */
    public abstract class BaseTemplate {
    	
    	public abstract void part1();
    
    	public abstract void part2();
    
    	public abstract void part3();
    
    	//这里为了严格实验结果,使用final不可被重写
    	public final void useTemplateMethod() {
    		part1();
    		part2();
    		part3();
    	}
    }

    /**
     * 模板实现方式1
     * @author stone
     *
     */
    public class TemplateMethod extends BaseTemplate {
    
    	@Override
    	public void part1() {
    		System.out.println("模板方法1");
    	}
    
    	@Override
    	public void part2() {
    		System.out.println("模板方法2");
    	}
    
    	@Override
    	public void part3() {
    		System.out.println("模板方法3");
    	}
    
    }
    

    /**
     * 模板实现方式2
     * @author stone
     *
     */
    public class TemplateMethod2 extends BaseTemplate {
    
    	@Override
    	public void part1() {
    		System.out.println("模板方法11");
    	}
    
    	@Override
    	public void part2() {
    		System.out.println("模板方法22");
    	}
    
    	@Override
    	public void part3() {
    		System.out.println("模板方法33");
    	}
    	
    }

    /**
     * 模板方法(TemplateMethod)模式:行为型模式,定义了一系列操作的骨架,将模块的实现 延迟到实现类或者子类中实现。
     * 跟建造者模式的差别:
     * 		建造者模式。使用组合方式,由指挥者Director指挥组合的Builder建造。建造流程由Director控制。建造的模块方法由Builder实现
     * 		模板方法模式。由模板定义操作流程,由子类或实现类 实现详细的模块方法
     * 		综上。建造者模式灵活于模板方法模式
     * @author stone
     *
     */
    public class Test {
    	public static void main(String[] args) {
    		BaseTemplate tm = new TemplateMethod();
    		tm.useTemplateMethod();
    		
    		System.out.println("");
    		
    		BaseTemplate tm2 = new TemplateMethod2();
    		tm2.useTemplateMethod();
    	}
    }

    打印

    模板方法1
    模板方法2
    模板方法3
    
    模板方法11
    模板方法22
    模板方法33
    


  • 相关阅读:
    DevExpress的GridControl的实时加载数据解决方案(取代分页)
    WinForm程序虚拟分页(实时加载数据)
    C#使用反射特性构建访问者模式
    WinApi学习笔记内存的复制,填充,输出等操作
    PL/SQL学习笔记程序包
    WinApi学习笔记创建进程
    PL/SQL学习笔记触发器
    WinApi学习笔记获取光驱中的信息
    WinApi学习笔记读写文件
    不通过配置文件启动WCF服务
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6805647.html
Copyright © 2011-2022 走看看