设计模式(20) -- 模板方法模式

简介: 设计模式(20) -- 模板方法模式

这个模式,其实我们经常用到,只是没有提升到设计模式的角度来看。总结一句话,就是抽取公共部分,子类实现变化部分。


需求


1dc618a0ed9580ce8bfa6facb208c08f.png


模板方法模式


基本介绍


5d4c6812c8535adbb050f4ddf2e1bce8.png

类图:


46a9d80a6e05e4e3b19d57a0ee70bcdf.png66ba272a0bfc97be54a5fa679e3d5482.png


模板方法模式解决豆浆制作问题


1dc618a0ed9580ce8bfa6facb208c08f.png

SoyaMilk

5d4c6812c8535adbb050f4ddf2e1bce8.png

PeanutSoyaMilk

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

RedBeanSoyaMilk

66ba272a0bfc97be54a5fa679e3d5482.png

Client

1dc618a0ed9580ce8bfa6facb208c08f.png

运行结果:

5d4c6812c8535adbb050f4ddf2e1bce8.png


扩展:模板方法模式的钩子方法


46a9d80a6e05e4e3b19d57a0ee70bcdf.png


代码


RedBeanSoyaMilk

66ba272a0bfc97be54a5fa679e3d5482.png

PureSoyaMilk

1dc618a0ed9580ce8bfa6facb208c08f.png

PeanutSoyaMilk

5d4c6812c8535adbb050f4ddf2e1bce8.png

RedBeanSoyaMilk

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

Client

66ba272a0bfc97be54a5fa679e3d5482.png

运行结果:

1dc618a0ed9580ce8bfa6facb208c08f.png


模板方法模式在 Spring 框架应用的源码分析


Spring IOC 容器初始化时运用到的模板方法模式


5d4c6812c8535adbb050f4ddf2e1bce8.png


模板方法模式的注意事项和细节


46a9d80a6e05e4e3b19d57a0ee70bcdf.png



相关文章
|
8月前
|
设计模式 算法
二十三种设计模式全面解析-深入解析模板方法模式的奇妙世界
二十三种设计模式全面解析-深入解析模板方法模式的奇妙世界
|
设计模式 存储 算法
行为型设计模式02-模板方法模式
行为型设计模式02-模板方法模式
60 0
|
设计模式 算法
设计模式9 - 模板方法模式【Template Method Pattern】
设计模式9 - 模板方法模式【Template Method Pattern】
45 0
|
设计模式 算法 Java
设计模式~模板方法模式(Template method)-10
目录 (1)优点: (2)缺点: (3)使用场景: (4)注意事项: (5)应用实例: (6)Servlet Api &
65 0
|
4月前
|
设计模式 算法 Java
Java设计模式-模板方法模式(14)
Java设计模式-模板方法模式(14)
|
6月前
|
设计模式 JavaScript 算法
js设计模式【详解】—— 模板方法模式
js设计模式【详解】—— 模板方法模式
53 6
|
7月前
|
设计模式 算法 关系型数据库
设计模式第七讲-外观模式、适配器模式、模板方法模式详解
系统要求所有的数据库帮助类必须实现ISqlHelp接口,面向该接口编程,如SQLServerHelp类。 此时第三方提供了一个新的MySql的帮助类(假设是dll,不能修改),它的编程规范和ISqlHelp不兼容,这个时候就需要引入适配器类,使二者能相互兼容。
187 0
|
8月前
|
设计模式 算法 Java
Java 设计模式:深入模板方法模式的原理与应用
【4月更文挑战第27天】模板方法模式是一种行为设计模式,主要用于定义一个操作中的算法的框架,允许子类在不改变算法结构的情况下重定义算法的某些特定步骤。
78 1
|
8月前
|
设计模式 Go
[设计模式 Go实现] 行为型~模板方法模式
[设计模式 Go实现] 行为型~模板方法模式
|
8月前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式

热门文章

最新文章

  • 1
    设计模式转型:从传统同步到Python协程异步编程的实践与思考
    64
  • 2
    C++一分钟之-设计模式:工厂模式与抽象工厂
    55
  • 3
    《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
    63
  • 4
    C++一分钟之-C++中的设计模式:单例模式
    79
  • 5
    《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
    49
  • 6
    《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
    81
  • 7
    Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
    70
  • 8
    Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
    54
  • 9
    Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
    63
  • 10
    Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
    137