`

java Template Method 模板方法

 
阅读更多

模板方法”简单理解就是:将关键的业务方法、逻辑或算法封装起来,而把具体的一些容易变化的步骤留给子类来进行具体不同的设置,具体表现就是实现父类的方法。

       一般情况下,模板方法的实现由继承来实现。父类为抽象类,封装了 public final 类型的公共方法,此方法即为关键的业务方法、逻辑或算法。具体实现见下面的代码:

package template;
/**
 * 模板方法 获得各种动物的腿和手的个数
 * @author Administrator
 *
 */
public abstract class Template {
	/**
	 * final 不让子类集成 公共的核心方法 获取手和腿个数
	 */
	public final void showAllThings(){
		String hand = getHand();
		String leg = getLeg();
		System.out.println("i have "+hand+"and"+leg);
	}
	/*
	 * 以下2个抽象方法 每个动物的腿和手个数都不一样,所以不同的子类集成父类实现该方法
	 */
	public abstract String getHand();
	public abstract String getLeg();
}

 

package template;
/**
 * 子类 猫 有4条腿 将父类的方法实现
 * @author Administrator
 *
 */
public class Cat extends Template {

	@Override
	public String getHand() {
		return " 0 hands ";
	}

	@Override
	public String getLeg() {
		return " 4 legs";
	}

}

 

分享到:
评论

相关推荐

    template-method-demo 模板方法示例

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

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

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

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

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

    TemplateMethod.zip

    总结来说,"TemplateMethod.zip"文件中的示例可能是为了演示如何在Java或其他编程语言中实现模板方法设计模式。通过创建一个抽象类定义算法的框架,并将具体实现留给子类,我们可以提高代码的可复用性和可维护性。...

    java实现模板下载功能

    ### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...

    模板方法设计

    在压缩包中的"07_templatemethod"可能包含了更多关于模板方法设计模式的示例代码和详细解释,包括但不限于更多的抽象类和具体类实现、不同场景的应用实例以及相关的讨论。通过查看这些文件,你可以更深入地理解并...

    java设计模式-模板模式

    3. **模板方法(Template Method)**:这是在抽象类中定义的方法,它调用了一个或多个钩子方法(即抽象方法或可选的具体方法)。模板方法执行整体算法的顺序,并且通常在最后调用钩子方法以完成算法的定制部分。 4....

    Eclipse中的快速Java代码模板使用 java editor template

    在"Code"字段中,你可以编写模板代码,使用变量如`${cursor}`来指示光标插入的位置,`${class}`代表类名,`${method}`代表方法名等。例如,一个简单的单例模式模板可能如下所示: ```java public class ${class} { ...

    TemplateMethod 模式与代码重构

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

    设计模式之模板方法模式Java实现和类设计图

    在Java中,模板方法模式通常通过抽象类来实现。抽象类定义了基本操作,这些操作由具体子类实现。模板方法通常是一个抽象方法,它调用这些基本操作,形成一个完整的算法流程。这种方式有助于减少代码重复,保持代码的...

    Java数据库连接+操作(模板方法模式应用)

    在本篇博客笔记中,我们将探讨如何利用Java进行数据库连接,并将模板方法模式应用于数据库操作,以实现更高效和可维护的代码。 首先,要进行数据库连接,我们需要引入JDBC驱动。对于不同类型的数据库(如MySQL、...

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

    public void templateMethod() { // 模板方法 primitiveOperation1(); // 基本方法 primitiveOperation2(); // 抽象方法,由子类实现 primitiveOperation3(); // 钩子方法 } public void primitiveOperation1...

    eclipse注释模板.xml + 修改模板方法 + 使用方法

    三、修改模板方法 1. 打开Eclipse,进入`Window` -> `Preferences`。 2. 在左侧导航栏选择`Java` -> `Code Style` -> `Code Templates`。 3. 在右侧面板中,你可以看到各种类型的注释模板,如`Comments` -> `Types`...

    java注释模板

    在Java编程中,注释是不可或缺的一部分,它们用于提高代码的可读性和可维护性。Java注释模板是为了规范和简化编写注释的...在Window -> Preferences -> Java -> Code Style -> CodeTemplate中可以找到并编辑这些模板。

    Discovering Template Method Pattern in Google Android framework

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

    模板方法模式案例代码

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

    模板方法模式简介和java代码实现

    在给出的Java代码示例中,`AbstractClass` 是抽象父类,它定义了 `templateMethod()` 模板方法,其中调用了 `operation1()` 和 `operation2()` 抽象方法,以及 `operation3()` 具体方法(可选)。`ConcreteClassA` ...

    模版方法模式TemplatePattern

    2. 模板方法(Template Method):这是一个具体的方法,定义了算法的骨架。这个方法由抽象类实现,它调用了基本方法来执行特定的步骤。模板方法通常声明为final,防止子类重写其结构。 3. 基本方法(Primitive ...

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

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

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

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

Global site tag (gtag.js) - Google Analytics