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

模板方法模式(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++实现

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在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、组合...

    模版方法模式TemplatePattern

    模板方法模式(Template Pattern)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类重新定义或改变某些基本操作,但整体结构和顺序保持不变。在Java编程中,...

    TemplateMethod Pattern.unitypackage

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

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

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...

    Discovering Template Method Pattern in Google Android framework

    模板方法模式(Template Method Pattern)在Google Android框架中的应用是一个重要的设计模式实例,它允许开发者定义一个算法骨架,而将一些步骤延迟到子类中。这个模式的关键在于它定义了一个操作中的算法步骤,并...

    python 模板方法模式(示例)

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

    C++设计模式课件3_Template Method_模板方法.pdf

    模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 #### 模式背景...

    C#版 24种设计模式

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

    11.设计模式-模板方法模式1

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在父类中定义算法的框架,然后由子类提供具体的实现。这种模式的核心是“模板方法”,它在父类中定义了一个操作的步骤顺序,并将某些步骤声明为...

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

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

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

    本篇将深入探讨“开闭原则”(Open Close Principle,OCP)、“状态模式”以及“模板方法模式”,并提供一个结合这三种模式的实际代码示例。 首先,我们来理解“开闭原则”(OCP)。这是面向对象设计的一个基本原则...

    设计模式PPT

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

    模板方法模式与策略模式代码示范

    在软件设计模式中,模板方法模式(Template Method Pattern)和策略模式(Strategy Pattern)是两种常用的结构型设计模式,它们都是面向对象设计中行为模式的一种体现。这两种模式可以帮助我们更好地组织代码,提高...

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

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

    [浪曦原创]JAVA设计模式.第10讲.模板方法模式.rar

    **模板方法模式(Template Method Pattern)**是一种行为设计模式,它在面向对象编程中扮演着重要角色。在Java中,这种模式允许我们定义一个算法框架,而将具体步骤的实现延迟到子类中。模板方法模式是基于继承的,...

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

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

    Java设计模式26模板方法模式.pdf

    模板方法模式(Template Method Pattern)定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这种模式属于类行为型模式,主要应用...

    设计模式代码——c#

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

Global site tag (gtag.js) - Google Analytics