1.模板方法模式定义

模板模式定义如下:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。子类实现的具体方法叫作基本方法,实现对基本方法高度的框架方法,叫作模板方法。

2.模板方法模式的优点

可变的部分可以充分扩展,不变的步骤可以充分封装;

提取公共代码,减少冗余代码,便于维护;
具体过程可以定制,总体流程方便掌控。

使用模板方法可以将代码的复用最大化

子类只需要实现自己的方法,将算法和实现的耦合降低。

3.模板方法模式的使用场景

某超类的子类中有公有的方法,并且逻辑基本相同,可以使用模板模式。必要时可以使用钩子方法约束其行为。

4.模板方法模式的缺点

模板模式在抽象类中定义了子类的方法,即子类对父类产生了影响,部分影响了代码的可读性。

5.举个例子

不用模板方法模式的时候

用模板方法模式的时候

煮完茶,煮完咖啡,还可以接着煮糖水,煮黑芝麻糊,煮豆浆,煮米糊,煮。。。。。

煮的多的话,用模板方法模式就能省很多代码了

参考

https://segmentfault.com/a/1190000017225491?utm_source=tag-newest

https://www.cnblogs.com/liuqingzheng/articles/10039693.html

https://blog.csdn.net/chenvast/article/details/79193248

最新文章

  1. mysql 重置root密码
  2. Tyvj 题目1463 智商问题(分块)
  3. sqlalchemy 优化count()……
  4. How Tomcat Works读书笔记之升级架构
  5. Python 共享和上传函数模块到PyPI
  6. git设置对比工具
  7. topcoder srm 610 div2 250
  8. python image模块
  9. RAC优化大框架的分配(jumbo frame)
  10. [转载]Python实现浏览器自动化操作
  11. 【转】vim替换命令
  12. JAVA 平台
  13. Linux-父子进程的简单同步
  14. Percona-Toolkit 之 pt-table-checksum 总结
  15. C# deep copy List
  16. 将逗号分隔的字符串转换为Python中的列表
  17. echarts动态添加数据
  18. 用HTML+CSS实现一个计科院网站首页静态页面
  19. 移动APP开发框架盘点
  20. Facebook在代码里下毒,百度身受重伤。。。

热门文章

  1. Android笔记(三十五) Android中AsyncTask
  2. servlet版本与tomcat版本对应关系,各版本web.xml头信息写法
  3. sql基本操作之增删改查
  4. Codeforces 1206 D - Shortest Cycle
  5. 从groupby 理解mapper-reducer
  6. 为RIDE创建桌面快捷方式
  7. Javascript基础(1)
  8. 7月新的开始 - Axure学习03 - 布尔运算、表单元件
  9. vue jqury如何获取元素中的属性
  10. Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证