`
jsczxy2
  • 浏览: 1275434 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

模板方法模式就是预先作好一个模板,开发者只要根据模板添加相应的业务实现,这个就是架构啦。

它有如下特点

1.这个模板一般是个抽象类,抽象出子类中部分公共的方法,从而减轻子类的负担。

2.这个模板可能会定义一些方法,子类必须实现这些方法。

举例:一个父亲可能留份作业给自己的儿子和女儿,作业内容是读一本书,那么父亲就是基类,是抽象的,但是儿子和女儿必须都要读一本书,那么这么读书方法可以再基类里面完成实现,具体到读哪本书则由儿子和女儿自己去选择。

以下是代码实现:

1.Father.java:

package com.xuyi.template;

public abstract class Father {
	
	public abstract String readBook();
	
	public void study(){
		System.out.println("child study:" + readBook());
	};
	
}

 2.Child.java:

package com.xuyi.template;

public class Child extends Father {
	private String bookname;
	
	@Override
	public String readBook() {
		return bookname;
	}

	public void read(String bookname){
		this.bookname = bookname;
	}
}

 3.Test.java

package com.xuyi.template;

//Template Method模式-模板方法模式
public class Test {
	public static void main(String[] args) {
		Child boy = new Child();
		boy.read("Thinking in Java");
		boy.study();
		
		Child girl = new Child();
		girl.read("Green Fairy");
		girl.study();
	}
}

 4.结果儿子读了Think in java,女儿读了格林童话。

分享到:
评论

相关推荐

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

    模板方法模式(Template Method)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这个模式在C++编程中有着...

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

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...

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

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

    template-method-demo 模板方法示例

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

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

    在C++设计模式代码资源3_Template Method中,我们可以期待找到一个示例,展示如何在C++中实现模板方法模式。可能包含一个抽象类(如`GameCharacter`),定义了攻击动作的模板方法,以及几个子类(如`Warrior`和`Mage...

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

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

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

    模板方法模式是设计模式中行为型模式的一种,它在软件工程中扮演着非常重要的角色,尤其是在Java编程中。模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重...

    设计模式之模板方法模式

    模板方法模式是设计模式中行为模式的一种,它在软件开发中起到了重要的作用,尤其是在复杂的系统设计中。模板方法模式遵循“开闭原则”,允许我们定义一个算法的骨架,同时允许子类在不改变整体结构的情况下,对算法...

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

    ### 设计模式之模板方法模式解析 #### 一、引言 在软件开发过程中,我们经常面临这样的场景:有一些步骤是固定的,而某些步骤则可能因具体实现而异。为了解决这类问题,设计模式中引入了一种叫做“模板方法模式”的...

    设计模式之美—学习笔记

    模板方法模式(Template Method)定义了操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。命令模式(Command)将请求封装为一个对象,以便使用不同的...

    TemplateMethod.rar

    在标签中,我们看到了“设计模式”和“TemplateMethod”,这是对压缩包内容的进一步确认,即它关注的是软件设计模式中的模板方法。 压缩包内的文件“TemplateMethod”可能是包含了模板方法设计模式实现的C++源代码...

    Template(模板模式)

    模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义对象间的一系列基本操作,并在子类中实现这些操作的具体步骤。在模板模式中,一个抽象类公开定义了执行它的方法的方式,而将具体实现延迟到子类中...

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

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

    设计模式之模版方法模式

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在创建算法族时。这种模式允许我们在抽象类中定义一个算法的框架,而将具体步骤延迟到子类中实现,从而实现了代码复用和扩展。下面...

    设计模式之模板设计模式

    模板方法模式的核心概念包含两个主要部分:模板方法(Template Method)和钩子方法(Hook Method)。模板方法是在抽象类中定义的,它包含了整个操作流程的步骤,而这些步骤中有些是具体的,有些是抽象的。抽象步骤由...

    设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)

    模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义执行算法的框架,而将一些步骤延迟到子类中。这样,你就能创建一个可复用的框架,将具体步骤留给子类来实现。这个模式的核心思想是抽象类定义了一...

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

    模板方法模式是一种行为设计模式,它允许在定义行为框架的同时,延迟部分具体步骤到子类中实现。这种模式主要用于在父类中定义算法的骨架,而将一些步骤的实现细节留给子类去完成,从而使得不同的子类可以重用相同的...

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

    模板方法模式是软件设计模式中的一种行为模式,它在面向对象设计中扮演着重要的角色,尤其是在代码复用和保持代码结构整洁方面。该模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一...

    24种设计模式以及混合设计模式

    如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、访问者模式(Visitor)、备忘录模式(Memento)、状态模式(State)、职责链...

    设计模式模板方法模式PPT学习教案.pptx

    模板方法模式是一种设计模式,属于行为设计模式,它在面向对象设计中被广泛使用,用于定义算法的骨架,而将一些步骤延迟到子类中。这样,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定...

Global site tag (gtag.js) - Google Analytics