论模板方法设计模式

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">      今天有点空闲,咱们来谈谈在设计模式中,相对简单的模板方法设计模块;其实我们经常在.net 或者Java里面用电,架构会把一些公共行为提取后放到抽象类中,我们在实际使用的时候,只需继续并修改变动的部分代码就实现我们想要的功能。</span>

先看看如何定义:定义一个操作中的算法骨架,而将一些步骤延迟到子类实现。这样使得子类在不变动一个算法的结构上即可重新定义某些特定的步骤。 很简单吧,简单点说,就是讲不需要变动的部分放到基类中,将变动的部分放到子类进行重新方法实现。

代码区:

AbstractClass类是基类,只定义具体的算法过程,而实现延迟到子类中。

abstract class AbstractClass
{
	public abstract void PrimitiveOperation1();
	public abstract void PrimitiveOperation2();
	//主框架结构只给出具体的抽象步骤,实现则延迟到子类
	public void TemplateMethod()
	{
		//对应的主算法框架结构
		PrimitiveOperation1();
		PrimitiveOperation2();
	}
}

ConcreteClassA 类实现特殊步骤的方法;

class ConcreteClassA:AbstractClass
{
 public override void PrimitiveOperation1()
 {
	Console.WriteLine(" PrimitiveOperation1 A");
 }
 public override void PrimitiveOperation2()
 {
	Console.WriteLine(" PrimitiveOperation2 A");
 }
}

ConcreteClassB 类代码

class ConcreteClassB:AbstractClass
{
 public override void PrimitiveOperation1()
 {
	Console.WriteLine(" PrimitiveOperation1 B");
 }
 public override void PrimitiveOperation2()
 {
	Console.WriteLine(" PrimitiveOperation2 B");
 }
}

客户端代码:

static void Main(String[] arg)
{
	AbstractClass c;
	//具体的模板A
	c=new ConcreteClassA();
	c.TemplateMethod();

	c=new ConcreteClassB();
	c.TemplateMethod();

}
时间: 2024-08-08 03:54:12

论模板方法设计模式的相关文章

Java抽象类深入理解-----模板方法设计模式(Templete Method)

模板方法设计模式(Templete Method) 定义一个操作中的算法骨架,而将一些可变部分的实现延迟到子类中. 模板方法设计模式使得子类可以不改变一个算法的结构即可重新定义该算法某些特定的步骤. 1 import java.util.Random; 2 3 public class AbstractTest002 { 4 public static void main(String[] args) { 5 JudgeMent jm = new JudgeMent(); 6 jm.action

大话设计模式--&gt;模板方法设计模式

在学习java的过程中,我们肯定听到过设计模式这名词,在行业中有这么一句话,若您能熟练的掌握23种设计模式,那么你便是大牛! 好了,废话不多说,今天我跟大家分享一下23种设计模式之一的  模板方法 设计模式 首先我们要知道什么是模板方法设计模式? 模板方法设计模式就是定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 为什么要使用模板方法设计模式? 模板方法模式是比较简单的一种设计模式,但是它却是代码复用的一项基本的

设计模式(三)__模板方法设计模式

咳咳,上课. 起立. 老师再见.??? 你们就这么希望老师走吗.... 好了,同学们,今天这节课给大家介绍一下设计模式的一种——模板方法设计模式. 那么什么是模板方法设计模式呢? 当功能内部一部分实现是确定的,一部分实现是不确定的.这时可以把不确定的部分暴露出去,让子类去实现. 模板方法模式是基于继承的代码复用的基本技术,模板方法模式的结构和用法也是面向对象设计的核心. 模式中的角色: ①抽象类:实现了模板方法 ②具体类:实现抽象类中的抽象方法 通过一个例子来让大家更容易理解. 当我们需要判断一

Spring整合JDBC模板方法设计模式之基于继承的实现

Spring整合JDBC模板方法设计模式之基于继承的实现: 模板设计模式简单描述: 把相同的部分提取出来,当我们运行的时候自动往里面设置值,在JdbcTemplate 的源代码中得execute(). 他把公共的部分拎出来写到一个特别的函数中,当我们使用的时候把会发生变化的内容在特定的部分调用,在不同的类里面处理相同的操作,这种方式就做模板设计模式. 例如,JdbcTemplate类中的方法: // ------------------------------------------------

Spring整合JDBC模板方法设计模式之基于组合的实现

Spring整合JDBC模板方法设计模式之基于组合的实现 模板设计模式指的是将相应的模板方法提取出来在一个专门的一个位置定义,然后把相同调用过程的操作通过模板实现. 对于模板设计模式,一般有2中方式 1.基于继承的方式实现 2.基于组合的方式实现 前面实现了:1.基于继承的方式实现 ,Spring整合JDBC模板方法设计模式之基于继承的实现 接下来实现:2.基于组合的方式实现 Spring整合JDBC模板方法设计模式之基于组合的方法在我们有大量类的情况下使用特别方便. 此实现模拟了Spring中

模板方法设计模式

/** 模板方法设计模式:父类的普通方法依赖于一个抽象方法,而抽象方法则推迟到子类中提供实现 *   父类中的普通方法只提供通用的算法,把抽象方法暴露出去,让子类去实现 */public class TestTemplate { public static void main(String[] args) { //匿名类对象调用其父类方法 new SubTemplate().spendTime(); }} abstract class Template { //把抽象的部分暴露出来,让子类去实现

二、Java面向对象(15)_模板方法设计模式

2018-05-06 模板方法设计模式 在父类的一个方法中定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,因为不同子类的实现细节不同.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 抽象父类:定义操作中的业务骨架,而将这些步骤延迟到子类中. 抽象父类至少提供两种方法: 1)模板方法:一种通用的处理方式,即模板(总体算法的骨架). 2)抽象方法:一个具体的业务功能实现,由子类完成. 参考:https://www.cnblogs.com/liaoweipeng/p/5

Spring 事务模板方法设计模式

接上一篇文章 上一篇讲到了doGetTransaction方法 一.模板方法设计模式 这里涉及到了一个经典的设计模式:模板方法 如下图: AbstractPlatformTransactionManager实现了PlatformTranscationManager接口 DatasourceTransactionManager,HibernateTransactionManager等继承了AbstractPlatformTransactionManager类 AbstractPlatformTra

JAVA模板方法设计模式(从现实生活角度理解代码原理)

概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现. 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义功能(确定的以及不确定的)的框架. 第二步:具体类,实现抽象类中的抽象方法,已完成完整的功能. 老规矩,最近想整一台BMW1系,去了趟4S店,店里恰好有一台现车,但颜色我不太喜欢,这时服务顾问上来解释说:"先生,您看中的这台车就这一个型号,外观,发动机,内饰等配置都是一样的,但颜色是可以个性化定制的,所以这个