python 设计模式之模板方法模式

1.模板方法模式定义

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

2.模板方法模式的优点

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

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

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

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

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

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

4.模板方法模式的缺点

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

 5.举个例子

不用模板方法模式的时候

 python 设计模式之模板方法模式

python 设计模式之模板方法模式

模板方法模式的时候

python 设计模式之模板方法模式

python 设计模式之模板方法模式

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

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

 参考

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