点击上方”python宝典”,关注获取python全套视频,
技术文章第一时间送达!
模板方法模式
1、内容
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2、角色
3、适用场景
4、优点
提高代码复用性 将相同部分的代码放在抽象的父类中
提高了拓展性 将不同的代码放入不同的子类中,通过对子类的扩展增加新的行为
实现了反向控制 通过一个父类调用其子类的操作,通过对子类的扩展增加新的行为,实现了反向控制 & 符合“开闭原则”
5、缺点
引入了抽象类,每一个不同的实现都需要一个子类来实现,导致类的个数增加,从而增加了系统实现的复杂度。
6、示例代码
from abc import ABCMeta, abstractmethod
class IOHandler(metaclass=ABCMeta):
@abstractmethod
def open(self, name):
pass
@abstractmethod
def deal(self, change):
pass
@abstractmethod
def close(self):
pass
def process(self, name, change):
'''模板,就相当于是一个空盒子,可以往里面添加自己需要的功能。让这个函数去执行'''
self.open(name)
self.deal(change)
self.close()
class FileHandler(IOHandler):
def open(self, name):
print('打开文件')
def deal(self, change):
print('操作文件')
def close(self):
print('关闭文件')
obj = FileHandler()
obj.process('abc.txt','')
识别图中二维码,欢迎关注python宝典