首頁  >  文章  >  Java  >  Java實作範本方法(TemplateMethod)模式的方法詳解

Java實作範本方法(TemplateMethod)模式的方法詳解

黄舟
黄舟原創
2017-03-11 11:07:571402瀏覽

類別圖



/**
 * 业务流程模板,提供基本框架
 * @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

以上是Java實作範本方法(TemplateMethod)模式的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn