设计模式(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



相关文章
|
4月前
|
设计模式 算法
二十三种设计模式全面解析-深入解析模板方法模式的奇妙世界
二十三种设计模式全面解析-深入解析模板方法模式的奇妙世界
|
6月前
|
设计模式 存储 算法
行为型设计模式02-模板方法模式
行为型设计模式02-模板方法模式
32 0
|
6月前
|
设计模式 算法
设计模式9 - 模板方法模式【Template Method Pattern】
设计模式9 - 模板方法模式【Template Method Pattern】
21 0
|
6月前
|
设计模式 算法 Java
设计模式~模板方法模式(Template method)-10
目录 (1)优点: (2)缺点: (3)使用场景: (4)注意事项: (5)应用实例: (6)Servlet Api &
32 0
|
7月前
|
设计模式 算法 Java
劳动节期间学习设计模式-模板方法模式
劳动节期间学习设计模式-模板方法模式
|
2天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
14天前
|
设计模式 算法 Java
小谈设计模式(11)—模板方法模式
小谈设计模式(11)—模板方法模式
|
16天前
|
设计模式 算法 Java
23种设计模式,模板方法模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
15 0
|
1月前
|
设计模式 存储 算法
【设计模式】模板方法模式
【设计模式】模板方法模式
|
2月前
|
设计模式 算法 Java
Java设计模式——模板方法模式
Java设计模式——模板方法模式
41 2