模板模式原理

泡咖啡和泡茶项目

  1. ![image.png](https://cdn.nlark.com/yuque/0/2019/png/153990/1561895938054-cc390202-def8-49c6-8226-b7a4512f186a.png "image.png")


image.png

第一个方案

1.咖啡类 4个步骤
image.png
2.茶 类 4个步骤
image.png
3.测试类

image.png

第二个方案

变与不变

image.png

1.抽象父类 hotDrink

image.png

第三个方案:模板方式

image.png

final 关键字 方法不能修改

  1. 抽象类 抽象方法添加步骤过程

image.png

2.子类重写两个步骤
image.png
3.Tea子类重写两个步骤
image.png
4.测试类
image.png

模板模式原理设计

image.png

image.png

1.抽象类
image.png

image.png

  1. 子类

重写父类hook方法,具有灵活性
image.png
3.测试主类

image.png

身边模板模式

排序鸭子

image.png

排序的模板抽象类
image.png
image.png

  1. 鸭子排序类

image.png

image.png
2.鸭子排序测试类
image.png

    ![image.png](https://cdn.nlark.com/yuque/0/2019/png/153990/1561897528436-dff539cb-96a3-4c33-8a20-aa887508b99c.png "image.png")

自定义控件

image.png

image.png

Android的模板模式

适配器
image.png

image.png

好莱坞原则

意义

image.png
image.png

与模板模式

经纪人作用—HotDrink,一系列流程
明星—Coffee、Tea完成个性化的内容。

设计模式-9模板模式 - 图30

关键点

finnal 方法 不可变 算法族
子类对某些方法进行重写,hook方法可以重写也可以不重写

身边的模板模式:

排序算法 comparable
自定义控件
Android 中的模板模式

好莱坞原则:

模板模式与策略模式对比

模板模式:封装步骤 继承

image.png

策略模式:方法、功能封装 组合,使用委托方式,利用接口作为超类,行为族