Maison > Java > javaDidacticiel > le corps du texte

Explication détaillée de la façon d'implémenter le modèle de méthode modèle (TemplateMethod) en Java

黄舟
Libérer: 2017-03-11 11:07:57
original
1414 Les gens l'ont consulté

Diagramme de classes



/**
 * 业务流程模板,提供基本框架
 * @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();
	}
}
Copier après la connexion


/**
 * 模板实现方式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");
	}

}
Copier après la connexion


/**
 * 模板实现方式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");
	}
	
}
Copier après la connexion


/**
 * 模板方法(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();
	}
}
Copier après la connexion

Imprimer

模板方法1
模板方法2
模板方法3

模板方法11
模板方法22
模板方法33
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal