`
543089122
  • 浏览: 153232 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

简单_模板方法模式(Template Method)

 
阅读更多



以“见人说人话见鬼说鬼话”来理解模板方法模式:

package design.templateMethod2;

/**
 * @author 作者 E-mail: jqsl2012@163.com
 * @version 创建时间:2012-2-4 下午08:21:37 <br>
 * 
 */
public class Test {
	public static void main(String[] args) {
		/*
		 * 模板方法模式(Template Method)
		 * 俗话说,见人说人话见鬼说鬼话,其实就是模版方法模式的最好理解。
		 * 模版方法模式其实就是在抽象类或接口中定义一个骨架,然后不同的子类有自己的实现。
		 * 模版方法模式和方法工厂模式有相似之处,方法工厂模式在抽象部分定义好创建产品的骨架,然后不同的
		 * 子类有各自的实现,那么可以这么看:
		 * 方法工厂模式是对创建产品的抽象;
		 * 模版方法模式是对具体实现的抽象;
		 * AbstractList.get()、ThreadPoolExecutor.Worker是模版方法模式在JDK中的体现。
		 * 
		 * don't call us, we'll call u(不要来找我,我会去找你的)说的就是模版方法模式,
		 * 也体现了反向控制的思想,像IOC控制反转也是这种思想的体现。
		 */
		Template say = new SayPersonTalk();
		say.say();

		say = new SayGhostTalk();
		say.say();
	}
}

package design.templateMethod2;

/**
 * @author 作者 E-mail: jqsl2012@163.com
 * @version 创建时间:2012-2-4 下午08:22:00 <br>
 * 说话模版
 */
public abstract class Template {
	public abstract void say();
}

package design.templateMethod2;

/**
 * @author 作者 E-mail: jqsl2012@163.com
 * @version 创建时间:2012-2-4 下午08:23:15 <br>
 * 说人话
 */
public class SayPersonTalk extends Template {

	@Override
	public void say() {
		System.out.println("说人话。。。");
	}

}

package design.templateMethod2;

/**
 * @author 作者 E-mail: jqsl2012@163.com
 * @version 创建时间:2012-2-4 下午08:24:04 <br>
 * 说鬼话
 */
public class SayGhostTalk extends Template {

	@Override
	public void say() {
		System.out.println("说鬼话。。。");
	}

}
  • 大小: 20.6 KB
0
1
分享到:
评论

相关推荐

    设计模式C++学习之模板方法模式(Template Method)

    在这个例子中,`AbstractClass`是模板类,定义了`templateMethod`模板方法,它调用了`primitiveOperation1`、`primitiveOperation2`以及组件(Component)的`operation`方法。`ConcreteComponentA`和`...

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

    ### C++设计模式课件3_Template Method_模板方法 #### 模板方法设计模式解析 模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式...

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

    在这个例子中,`AbstractClass`定义了`templateMethod`模板方法,其中`step1()`是具体实现,而`step2()`和`step3()`作为抽象方法由`ConcreteClass1`和`ConcreteClass2`这两个具体类来实现。这样,不同的具体类可以...

    C++设计模式代码资源3_Template Method_模板方法.zip

    "模板方法"(Template Method)是设计模式中的一个经典概念,它属于行为设计模式,主要用在父类中定义一个算法的框架,允许子类在这个框架内重定义特定的步骤。这个模式通常用于代码复用和保持代码结构的一致性。 ...

    设计模式_行为型_模板方法模式.md

    - **模板方法(Template Method)**:调用抽象类中的其他方法来定义算法的步骤。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 2. **具体类(ConcreteClass)**:实现抽象类中定义的...

    模板方法模式(TemplateMethod)原理图

    模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...

    template-method-demo 模板方法示例

    在"template-method-demo"这个示例中,我们可以预见到它将展示如何在Java中应用模板方法模式。这个压缩包可能包含以下内容: 1. 一个抽象类(例如:`AbstractClass`),它定义了模板方法。在这个类中,可能会有一个...

    模版方法模式TemplatePattern

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

    设计模式-模板方法模式ppt

    - **抽象类(Abstract Class)**:包含一个或多个抽象方法,并且有一个模板方法(template method)。模板方法通常被声明为final,这意味着它不能被子类覆盖。 - **具体操作(Concrete Operations)**:在抽象类中...

    模板方法模式案例代码

    4. **模板方法(Template Method)**:定义了算法的基本步骤,调用各个步骤的方法,可以是抽象的也可以是具体的方法。 下面是一个简单的Java模板方法模式示例,以饮料制作过程为例: ```java public abstract ...

    设计模式--模板方法模式java例子

    在这个例子中,`templateMethod`是模板方法,它在`AbstractClass`中定义了算法的整体结构,而`step1`是一个需要子类实现的抽象方法,`step2`是可选的默认实现,`step3`是不能被子类重写的最终方法。 模板方法模式的...

    Template(模板模式)

    在模板模式中,一个抽象类公开定义了执行它的方法的方式,而将具体实现延迟到子类中。这种方式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板模式的核心结构包括抽象类(AbstractClass)...

    TemplateMethod.rar

    标题“TemplateMethod.rar”暗示了这个压缩包包含的是关于Qt平台上实现模板方法设计模式的示例代码。Qt是一个跨平台的应用程序开发框架,常用于创建GUI程序,但也可用于非图形化的后台服务。 描述中的“模板方法...

    模板方法模式例子

    2. 模板方法(TemplateMethod):这是核心方法,定义了算法的整体结构,调用了抽象方法和具体方法。 3. 具体方法(ConcreteMethod):这些方法在抽象类中已经完全实现,子类不需要关心这部分代码。 例如,假设我们...

    ios-iOS模板方法模式使用心得demo.zip

    4. 模板方法(Template Method):定义了算法的基本结构,包括一系列步骤,这些步骤可能包含直接调用的钩子方法。模板方法通常是不可变的,确保算法的总体流程不会被子类改变。 在iOS应用开发中,模板方法模式的...

    设计模式之模板方法模式

    3. **模板方法(Template Method)**:在抽象类中定义的,它是一个具体方法,负责组织和控制算法的流程。模板方法通常包含了业务逻辑的主要流程,并调用了其他基本方法。 4. **钩子方法(Hook Methods)**:可选的...

    设计模式-模板方法模式(讲解及其实现代码)

    在这个例子中,`AbstractClass` 是抽象类,`templateMethod` 是模板方法,`step1`、`step2` 和 `step3` 是基本方法,其中 `step2` 提供了一个默认实现,`step3` 是一个钩子方法,子类可以选择是否覆盖。`Concrete...

    TemplateMethod.zip

    这个压缩包"TemplateMethod.zip"包含了关于C++实现模板方法设计模式的代码示例。 模板方法模式的核心思想是定义一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重定义该算法...

    C++设计模式之模板方法模式(TemplateMethod)

    模板方法模式是面向对象设计模式中的一种,它属于行为模式,主要用来定义对象间的一系列操作顺序,而将一些步骤的实现延迟到子类中。这样可以使得子类不改变算法的结构即可重定义该算法的某些特定步骤,从而实现多态...

    TemplateMethod 模式与代码重构

    TemplateMethod(模板方法)设计模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色。这个模式允许我们在抽象类中定义一个算法的框架,同时允许子类在不改变算法结构的情况下重写算法中的特定步骤。通过...

Global site tag (gtag.js) - Google Analytics