本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/

模板方法模式简介

这是一个被用的相当广泛的一种设计模式,变体也特别多,他建立一个抽象类定义一个算法的结构,但是把细节部分的实现权力交个子类实现,是一种很灵活且代码重用性很高的设计模式。

模板方法模式的定义和基本结构

定义:在一个方法中定义一个算法的骨架,而将其中一些步骤的实现交给子类,模板方法模式使得子类在不改变算法结构的情况下,重新定义了算法中的某些步骤。

一张来自《Head First》的结构图。

aaarticlea/png;base64,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" alt="" />

是不是超级简单。

AbstractClass:一个超类,其中templateMethod()方法定义了算法结构,而下面的primitiveOperation方法则是结构中交个子类实现的那一部分。

ConcreteClass:继承了AbstractClass,并根据自己的需要实现了超类的抽象方法,在不改变超类算法结构的前提下得到了定制版的templateMethod()方法。

一个简单的实例(java)

我们用《Head First》书中制作饮料的例子来说明,无论是咖啡还是茶,做法其实都是相同的。

1,烧水。

2,放入茶叶/咖啡豆。

3,倒入杯中。

4,加入柠檬/牛奶。

从中我们可以看到这个制作方法(算法)结构是一定的,而且其中有不变的部分和会变的部分。不变的部分我们可以直接实现在超类中,而变的部分我们可以设置成抽象方法留给子类实现。下面我们直接来看代码吧。

首先给出超类 Beverage。

 public abstract class Beverage {
public final void prepareRecipte(){
boilWater();
brew();
pourInCup();
addCondiments();
}
void boilWater(){
System.out.println("boiling water");
}
void pourInCup(){
System.out.println("pouring into the cup");
}
abstract void brew();
abstract void addCondiments();
}

然后给出tea和coffee的实现。

public class Tea extends Beverage {
@Override
void brew() {
System.out.println("steeping the tea");
}
@Override
void addCondiments() {
System.out.println("put lemon");
}
} public class Coffee extends Beverage {
@Override
void brew() {
System.out.println("putting coffee bean");
}
@Override
void addCondiments() {
System.out.println("add milk");
}
}

然后给出测试类。

 public class Test {
public static void main(String[] args) {
new Tea().prepareRecipte();
System.out.println("");
new Coffee().prepareRecipte();
}
}

输出如下:

aaarticlea/png;base64,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" alt="" />

可以看到子类中实现的方法在算法结构中得到了体现,另外我们也可以将一些可重写或可不重写的函数在超类中给出一个实现,让子类决定要不要重写这个函数,这个函数一般被叫做回调函数(hook)。

另外工厂模式中的工厂方法其实是模板方法模式的一个特例,大家可以自行对比一下。

外观模式到此结束♪(^∇^*)。

参考资料:《Head First 设计模式》。

设计模式-模板方法模式(the Template Method Pattern)的更多相关文章

  1. 瑞幸咖啡还是星巴克,一杯下午茶让我明白 设计模式--模板方法模式(Template Method Pattern)

    简介 Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template M ...

  2. 深入浅出设计模式——模板方法模式(Template Method Pattern)

    模式动机 模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一.在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中.在模板方法模式 ...

  3. C#设计模式---模板方法模式(Template Method Pattern)

    一.目的 模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码. 二.定义 模板方法模式:在一个抽象类中定义一个操作的算法骨架,将算法骨架中某些特定的操作延迟到子类中实现. 模板方法使得子类在 ...

  4. C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】

    一.引言 “结构型”的设计模式已经写完了,从今天我们开始讲“行为型”设计模式.现在我们开始讲[行为型]设计模式的第一个模式,该模式是[模板方法],英文名称是:Template Method Patte ...

  5. 设计模式系列13:模板方法模式(Template Method Pattern)

    定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.    --<设计模式GoF> UML类图 使用场景 有 ...

  6. c#设计模式系列:模板方法模式(Template Method Pattern)

    引言 提到模板,大家肯定不免想到生活中的"简历模板"."论文模板"."Word中模版文件"等,在现实生活中,模板的概念就是--有一个规定的格 ...

  7. 第 9 章 模板方法模式【Template Method Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 周三,9:00,我刚刚坐到位置,打开电脑准备开始干活. “小三,小三,叫一下其它同事,到会议室,开会”老大跑过来吼,带着 ...

  8. Java设计模式-模板方法模式(Template Method)

    解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系 ...

  9. 设计模式 | 模板方法模式(template method)

    定义: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 结构:(书中图,侵删) 一个定义整体框架的父类 若干不同具体实现 ...

  10. GJM: 设计模式 - 模板方法模式(Template Method)

    生活中的模板 一.在银行办理业务 Step1:进门取号 Step2:填写单据 Step3:等待叫号 Step4:窗口办理 二.奥运会开幕式 第一步:升国旗奏国歌 第二步:领导人致辞讲话 第三部: 文艺 ...

随机推荐

  1. 「6月雅礼集训 2017 Day8」infection

    [题目大意] 有$n$个人,每个人有一个初始位置$x_i$和一个速度$v_i$,你需要选择若干个人来感染一个傻逼病毒. 当两个人相遇(可以是正面和背面),傻逼病毒会传染,求经过无限大时间后,传染完所有 ...

  2. bzoj 1034 贪心

    首先如果我们想取得分最高的话,肯定尽量赢,实在赢不了的话就耗掉对方最高的,那么就有了贪心策略,先排序,我方最弱的马和敌方最弱的相比,高的话赢掉,否则耗掉敌方最高的马. 对于一场比赛,总分是一定的,所以 ...

  3. kaggle比赛流程(转)

    一.比赛概述 不同比赛有不同的任务,分类.回归.推荐.排序等.比赛开始后训练集和测试集就会开放下载. 比赛通常持续 2 ~ 3 个月,每个队伍每天可以提交的次数有限,通常为 5 次. 比赛结束前一周是 ...

  4. hadoop2.4.1伪分布式环境搭建

    注意:所有的安装用普通哟用户安装,所以首先使普通用户可以以sudo执行一些命令: 0.虚拟机中前期的网络配置参考: http://www.cnblogs.com/qlqwjy/p/7783253.ht ...

  5. AJAX 核心 —— XMLHTTPRequest 对象回顾

    一.AJAX概述 不使用 AJAX 的网页,如果要更新内容,需要重载整个页面. AJAX ( Asynchronous Javascript And XML ,异步 Javascript 和 XML) ...

  6. selenium===requestium模块介绍

    有时,你可能会在网上实现一些自动化操作.比如抓取网站,进行应用测试,或在网上填表,但又不想使用API,这时自动化就变得很必要.Python提供了非常优秀的Requests库可以辅助进行这些操作.可惜, ...

  7. Open Compute Project

    Open Compute Project https://github.com/opencomputeproject https://github.com/floodlight/floodlight ...

  8. Kettle提高输入输出数据总结

    1 mysql在数据连接是可以通过设置一下三个三处的方式 useServerPrepStmts=false       useCursorFetch=true      useCompression= ...

  9. Dev的js智能提示

    VS中"工具"->"选项"->"文本编辑器"->"JavaScript"->"Inte ...

  10. 关于aspxgridview里面过长内容只显示的一部分的处理方案

    protected void g_Message_CustomColumnDisplayText(object sender, ASPxGridViewColumnDisplayTextEventAr ...