模板方法模式: 在一个抽象类公开定义了执行它的方法的模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 属于行为型模式。

spring ioc容器初始化时运用到模板方法模式。

// 抽象类,表示豆浆
public abstract class SoyMilk {// 模板方法可以做成final,不让子类覆盖final void make(){select();addCondiments();soak();beat();}void select(){System.out.println("第一步: 选择好的新鲜黄豆 ");}abstract void addCondiments();// 浸泡void soak(){System.out.println("第三部: 黄豆和配料开始浸泡,需要3个小时 ");}void beat(){System.out.println("第四部: 黄豆和配料放到豆浆机去打碎 ");}
}public class RedBeanSoyaMilk extends SoyMilk{@Overridevoid addCondiments() {System.out.println("加入上好的红豆...");}
}public class PeanutSoyaMilk extends SoyMilk{@Overridevoid addCondiments() {System.out.println("加入上好的花生...");}
}public class Client {public static void main(String[] args){System.out.println("制作红豆豆浆");SoyMilk redBeanSoyaMilk = new RedBeanSoyaMilk();redBeanSoyaMilk.make();System.out.println("制作花生豆浆");SoyMilk peanutSoyaMilk = new PeanutSoyaMilk();peanutSoyaMilk.make();}
}

设计模式:模板方法(Template Method Pattern)相关推荐

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

    模式定义 定义一个操作的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法某些特定步骤 类图 要点总结 Template Method模式是一种非常基础性的设计模式, ...

  2. 设计模式-模板方法(Template Method Patten)

    定义一个操作中算法的框架,而将一些步骤延迟到一些子类.使得子类可以不改变一个算法的结构即可重新定义改算法的某些特定步骤 先举一个使用模板方法的小例子方便大家加深印象和理解 首先画下类图 image.p ...

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

    23种设计模式+额外常用设计模式汇总 (持续更新) 简介 Define the skeleton of an algorithm in an operation,deferring some step ...

  4. 行为型设计模式(2)—— 模板方法模式(Template Method Pattern)

    文章目录 1.概述 2.简单实现 3.使用场景和优缺点 4.小结 参考文献 1.概述 使用设计模式可以提高代码的可复用性.可扩充性和可维护性. 模板方法模式(Template Method Patte ...

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

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

  6. Java设计模式——模板方法模式【Template Method Pattern】

    一.引言 23种设计模式大概分为三大类: 5种(创建型模式):工厂方法模式.抽象工厂模式.单例模式.原型模式.建造者模式. 7种(结构型模式):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...

  7. 模板方法模式(Template Method Pattern)学习笔记

    模板方法模式可以所是最为常见的一种设计模式了,出乎很多人意料的是,很多人已经在他们的代码中用到了模板方法模式而没有意识到自己用到了这个模式,模板方法模式几乎可以在所有的抽象基类中找到. 通过模板方法模 ...

  8. 设计模式之模板方法模式(Template Method Pattern)

    模式的定义与特点 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤.它 ...

  9. 咕泡-模板方法 template method 设计模式笔记

    2019独角兽企业重金招聘Python工程师标准>>> 模板方法模式(Template Method) 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中 Template Met ...

最新文章

  1. C/C++ Development Library
  2. linux第9天 UDP
  3. RSA非对称加密算法的安全性何在
  4. mysql创建库和表确保utf8_mysql创建utf8数据库
  5. java折半查找简述_折半查找(java版)
  6. 软件定义,软件开发,软件维护
  7. c高级语言程序设计B试题,高级语言程序设计试题(B)卷.doc
  8. win10 Java JDK环境变量配置
  9. openerp mac os 下 报表中文乱码问题。
  10. 【java】浅析JDK中ServiceLoader的源码
  11. python读取数据库数据,读取出的中文乱码问题
  12. 开发一款浏览器内核需要学习哪些方面的知识?
  13. lisp 任意点 曲线距离_递归、分治、分类和最小距离点对的autolisp实现
  14. mysql 5.1.3_1.1.1 MySQL5.5默认存储引擎的调整(3)
  15. mysql插入汉子1366_mysql 向列表中添加漢字錯誤 1366
  16. SpringBoot整合sigar实现服务端监控
  17. 带你初步了解生物网络分析
  18. linux进价命令(sort,comm,unip等)
  19. Python货币转换
  20. BT技术概念 — 一些术语的意思

热门文章

  1. java string 转化为date
  2. Linux 播放网易云音乐(树莓派)
  3. 数据库管理专才四步走
  4. LU 分解 (LU Decomposition)
  5. GridView跨行合并单元格
  6. 超经典的存储过程分页 ;-) 引自CSDN网友所作
  7. Cable:360实现的新虚拟网络架构
  8. java框架篇---spring IOC依赖注入
  9. appium+python自动化40-adb offline(5037端口被占)
  10. Java提高——多线程(二)join、sleep、yield