首先让我们看看生活之中的“模板”,在《设计模式-JAVA语言中的应用》是这样说的:“模板(Template)是指在薄片塑料板上面写字(或印字)后挖空,再使用毛笔或色笔涂满挖空的部分,就能看到纯手工而又不失工整的字样。看到模板上挖空形状,马上就知道最后会变出什么样的字,不过实际上所显示出来的字样还是要依使用的画笔的种类而定。拿黑色签字笔当画笔,成果当然就是签字笔风的字样;光是铅笔来画,得到的也就是灰黑色的铅笔字;如果用五颜六色的彩色笔,自然能创造出让人眼花缭乱的多色字样。但是,无论使用那种文具,制造出来的字样都还是脱不了模板上已经固定的形状。”这个例子想必日常生活中我们都见过吧!不过这和我们要讨论的Template Method有什么关系呢?
Template Method模式的目的:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。
看一个具体的例子,假如一个工作流由三个步骤来完成,执行的顺序为123依次执行,而每一个具体的步骤可能根据具体情况会有所不同,那麽我们制造如下的一个“薄片塑料板”: 最后让我们来看看如何制作出来不同的“字体”吧!
- public abstract class WorkFlow {
- public abstract void stepOne();
- public abstract void stepTwo();
- public abstract void stepThree();
- public final void work() {
- stepOne();
- stepTwo();
- stepThree();
- }
- }
注意关键字final的意义,它意味其子类不能对工作步骤的顺序进行修改,对于abstract,我们可能意识到它并不像我们开始时认为的那麽无用了,这里的用法也是抽象类的真正含义之一。下面我们来造作两种不同的“笔风”:
分享到:
相关推荐
设计模式C++学习之模板方法模式(Template Method)
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
template-method-demo 模板方法示例
NULL 博文链接:https://walson.iteye.com/blog/392089
Template Method.rarTemplate Method.rarTemplate Method.rarTemplate Method.rar模板设计模式
C++设计模式课件3_Template Method_模板方法.pdf
C++设计模式代码资源3_Template Method_模板方法.zip
主要介绍了C#中的TemplateMethod模式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。
Eclipse Template与模式.doc
Discovering Template Method Pattern in Google Android framework
模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...
Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要。变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好...
设计模式中的策略模式,template模式详细讲解。
走进设计模式之—— Template(模板模式)
模板方法代码(Qt平台)
Template Method 模式 Visitor 模式 Guarded Suspension 模式 Producer Consumer 模式 Worker Thread 模式 Thread-Per-Message 模式 Future 模式 Read-Write-Lock 模式 Two-phase Termination 模式 ...
示例只是简单展示模板方法模式的基本用法,有关示例的细节请看:https://blog.csdn.net/ZhangCurie/article/details/104727167
主要为大家详细介绍了C++设计模式之模板方法模式TemplateMethod,具有一定的参考价值,感兴趣的小伙伴们可以参考一下