`
wdt1988520
  • 浏览: 14359 次
社区版块
存档分类
最新评论

模板方法模式(Template Method Pattern)

 
阅读更多

Template Method Pattern属于行为模式。

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

 

 

 

角色分析:结构非常简单

AbstractClass(抽象类):

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

ConcreteClass(实现类):

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

 

适用环境:

 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);
	}
       
}

 

 

分享到:
评论

相关推荐

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    TemplateMethod Pattern.unitypackage

    TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。

    C#模板方法模式(Template Method Pattern)实例教程

    主要介绍了C#模板方法模式(Template Method Pattern),以实例形式讲述了C#抽象类模板方法的用法,具有很高的实用价值,需要的朋友可以参考下

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    24种设计模式与6大设计原则

    模板方法模式[TEMPLATE METHOD PATTERN] 建造者模式[BUILDER PATTERN] 策略模式 代理模式 单例模式 多例模式 工厂方法模式 抽象工厂模式 门面模式 适配器模式 模板方法模式 建造者模式 桥梁模式 命令模式 装饰模式 ...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    Python设计模式之模板方法模式实例详解

    模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面是一个模板方法模式的一个demo: #!/...

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式... 模板方法模式(Template Method Pattern)  访问者模式(Visitor Pattern)

    C#设计模式_设计模式_C#_

    工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10. 外观模式...

    【原创】Open close principle sample, state pattern, template method pattern

    设计模式中状态模式的例子代码,并包含函数模板模式;设计模式研究学习

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下...模板方法模式(Template Method) 访问者模式(Visitor)

    C#设计模式(23种设计模式)

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10...

    Java设计模式,并加上个人理解

    8. 模板方法模式 (Template Pattern) 9. 建造者模式 (Builder Pattern) 10. 原型模式 (Prototype Pattern) 11. 组合模式 (Composite Pattern) 12. 装饰者模式 (Decorator Pattern) 13. 访问者模式 ...

    设计模式代码——c#

    4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern...

    23种设计模式 (创建型,结构型,行为型)

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10...

    JAVA设计模式.rar

    模板方法模式【TEMPLATE METHOD PATTERN】  建造者模式【BUILDER PATTERN】 桥梁模式【BRIDGE PATTERN】  命令模式【COMMAND PATTERN】  装饰模式【DECORATOR PATTERN】 迭代器模式【ITERATOR ...

    32种设计模式

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式...

    Design-patterns:java23种设计模式,深入理解灵活运用设计模式对于优化代码质量,提高编程能力非常必要!

    模板方法模式 Template method pattern 建造者模式 Builder model 适配器模式 Adapter mode 装饰模式 Decorative pattern 观察者模式 Observer mode 组合模式 Portfolio model 策略模式 The strategy pattern 责任链...

Global site tag (gtag.js) - Google Analytics