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

它有如下特点

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

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

比如说我们想要某个方法总是以线程方法启动,于是我们的抽象类定义如下:

public abstract class Template {public abstract void action();public void doAction() {new Thread(new Runnable() {public void run() {action();}}).start();}
}

其中action具体就由子类SubTemplate实现。

public class SubTemplate extends Template {@Overridepublic void action() {// TODO Auto-generated method stubdoSomeThing();}}

OK,模板方法模式就这么简单了.

小结:

Template Method模式目的在于一个方法中定义一个算法,并对算法的某些步骤进行抽象,这样,我们可以将这些步骤的具体实现从这个方法中提出,并在某个部方法中定义这些步骤,或者是用一个接口定义这些步骤,留待其他类来提供这些步骤的实现。

Template Method模式通常可以作为开发人员之间的约束。一个开发人员提供算法的框架,另一个开发人员则提供算法某些步骤的具体实现。这也许是需要算法实现的步骤,或者是算法的开发人员在算法中某一位置设置的钩子。

Template Method模式并不要求我们定义子类前编写模板方法。我们可能在已有的类层次结构发现相似的方法。在这种情况下,我们可以抽象出算法的架构,并把它上移到超类中,从应用模板方法模式来简化和组织代码。这种模式在日常开发中比较常用。

设计模式之略见一斑(Template Method模板方法模式)相关推荐

  1. C++设计模式之Template Method(模板方法模式)

    模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合, 打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我 ...

  2. Template Method - 模板方法模式

    1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关. 例子1 ...

  3. Template Method(模板方法)模式

    1. 意图 定义一个操作中的算法的骨架. 而将一些步骤延迟到子类中. 它使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 2. 动机 3. 适用性 一次性实现一个算法的不变部分. 并将 ...

  4. 设计模式的征途—17.模板方法(Template Method)模式

    在现实生活中,很多事情都需要经过几个步骤才能完成,例如请客吃饭,无论吃什么,一般都包含:点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单=>吃东西=>买单.在这3个步骤中, ...

  5. Java设计模式之行为型:模板方法模式

    一.什么是模板方法模式: 模板方法是基于继承实现的,在抽象父类中声明一个模板方法,并在模板方法中定义算法的执行步骤(即算法骨架).在模板方法模式中,可以将子类共性的部分放在父类中实现,而特性的部分延迟 ...

  6. java tea bag_设计模式系列教程—Template Method Pattern(模板方法模式)

    9 Template Method Pattern(模板方法模式) 前言:封装步骤的算法. Vander作为老板,凡是亲力亲为,他新开了家咖啡店,这是他招牌咖啡卡布奇诺的冲泡方法: 1.把水煮沸 2. ...

  7. 【设计模式】行为型02模板方法模式(Template Method Patten)

    五一长假,没有出去,不喜欢嘈杂的人群,玩了会游戏发泄了下憋在心底的戾气,手旁大马克杯里是母亲泡的绿茶.点开自己的播放列表,耳机里传来的是理查德克莱德曼的致爱丽丝.自己是个凡人,卑微渺小的活着.不说废话 ...

  8. 设计模式——Template Method模板方法

    文章目录 1.动机 2.定义 3.代码 4.总结 1.动机 在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构, 但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系 ...

  9. 设计模式与软考试题之模板方法模式

    2008年下半年软件设计师考试下午试题最后一题考查模板方法模式,原题如下: [全国计算机技术与软件专业技术资格(水平)考试 2008年下半年 软件设计师 下午试卷]        注:当年试题五.试题 ...

最新文章

  1. delphi创建和读取xml(xml简单操作举例)
  2. 信标灯、三轮车、电容充电
  3. #!/usr/bin/env python与#!/usr/bin/python的区别
  4. 2007年50种方式将改变你生活
  5. jzoj6288-旋转子段【优雅的暴力】
  6. mysql触发器_MySQL视图\触发器\事务初步认识
  7. [Android Pro] RecyclerView实现瀑布流效果(二)
  8. office visio 替代_5款替代微软Visio的开源免费软件(转)
  9. 计算机微信接收excel打不开怎么回事,电脑端微信打不开怎么解决
  10. php 多图合成一张,多张图片拼成一张图,支持图片拼接功能,多种拼图模板的软件...
  11. html5做宠物饲养,说一说最适合上班族养的十大宠物
  12. 《Towards Generative Aspect-Based Sentiment Analysis》论文阅读
  13. MFC项目有关打印功能(支持分页打印)
  14. 10款国外免费网站在线监控服务工具
  15. Snaker技术文档整理
  16. 用批处理在桌面上创建快捷方式
  17. 01背包中是否背包装满问题
  18. 行尸走肉第九季在线观看
  19. 【驾考】科目二所有项目的动作分解【适用于广州岑村A考场】
  20. 前端微信jssdk智能语音识别,完整案例

热门文章

  1. APS计划排产软件实现新能源汽车企业人员结构优化
  2. PointNet: PointNet+WIN10+训练与测试
  3. STC89C52+DHT20设计的环境温湿度检测仪
  4. Pytorch搭建Retinaface人脸检测与关键点定位平台
  5. Java版坦克大战游戏的分析与实现
  6. PHP程序员最易犯10种错误_莫枫恋_新浪博客
  7. 最近很烦很烦很烦。。。。。
  8. java开发岗面经常见题汇总
  9. 搭建Docker私服
  10. 【shell】压缩包解压密码暴力破解流程