频道栏目
首页 > 资讯 > Java > 正文

Java设计模式(14)行为型:模板方法模式

17-01-01        来源:[db:作者]  
收藏   我要投稿

模板方法模式是指定义一个操作中算法的骨架,而将一些步骤延迟到子类中。设计者需要给出一个算法的固定步骤,并将某些步骤的具体实现留给子类来实现。具体模板实现算法细节不会改变整个算法的骨架,但注意要将各个子类公共行为提取出来集中到一个共同的父类中以避免代码重复。

 

AbstractTemplate类,定义逻辑顺序并将实现过程定义为抽象方法。

 

public abstract class AbstractTemplate {
	String data;
	// 逻辑顺序(模式核心)
	public final void templateMethod() {
		getData();
		calcData();
		printData();
	}
	// 普通方法,可能已经实现,也可能需要子类实现
	abstract void getData();
	abstract void calcData();
	void printData() {
		System.out.println(data);
	}
}
Template1类继承抽象模板并具体实现:

 

 

public class Template1 extends AbstractTemplate {
	@Override
	void getData() {
		data = "TemplateMethod1";
	}

	@Override
	void calcData() {
		data = "do:" + data;
	}
}
Template2类继承抽象模板并具体实现:
public class Template2 extends AbstractTemplate {
	@Override
	void getData() {
		data = "TemplateMethod2";
	}

	@Override
	void calcData() {
		data = "do:" + data;
	}
}
执行过程:

 

 

AbstractTemplate template1 = new Template1();
template1.templateMethod();
AbstractTemplate template2 = new Template2();
template2.templateMethod();
执行结果:
do:TemplateMethod1
do:TemplateMethod2

 

(注)上例中Template1和Template2的逻辑过程是一样的,只是具体实现不同。模板方法模式使用的非常广泛,只要是逻辑顺序固定但实现不同的,都可以是使用模板方法模式。

相关TAG标签
上一篇:eclipse下maven常用命令打包
下一篇:libjingle之Signals概念解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站