模板方法模式(Template Method Pattern)

Template Method Pattern属于行为模式。

GOF定义:定义一个操作中算法骨架,将一个些算法操作延迟到子类中去实现,模板方法使得子类能够改变算法结构或者重新定义算法实现。

角色分析:结构非常简单

AbstractClass(抽象类):

   在抽象类中定义一系列的基本操作,者写基本操作可以具体的实现也可以是抽象的。

ConcreteClass(实现类):

   用于实现或者覆盖父类的一系列基本操作。

扫描二维码关注公众号,回复: 558615 查看本文章

适用环境:

 1、一次实现算法不变的部分,将可变的部分留给子类。

 2、实现各个子类公共的部分,其他部分留给子类。

 3、负责算法的分割,将算法固定不变的部分设计为模板,留给子类调用。

 4、子类实现,父类调用(钩子)。

例:模板方法就是灵活使用继承的方式。

package template;
/**
 *create by datao.wang 2014-2-8-上午10:44:32	
 *子类必须以线程启动
 */
public abstract class Template {
   
	public abstract void action();
	
	public void doAction(){
		new Thread(new Runnable() {
			@Override
			public void run() {
				action();//调用子类的实现
			}	
		}).start();
	}
}


package template;
/**
 *create by datao.wang 2014-2-8-上午10:45:02	
 *子类现象父类的模板
 */
public class SubTemplate extends Template {

	@Override
	public void action() {
		System.out.println(1+1);
	}
       
}

猜你喜欢

转载自wdt1988520.iteye.com/blog/2012249