模板模式:定义一个操作中的算法的框架,而将算法中的某些步骤放到子类中实现,使得子类可以在不改变算法结构的情况下重新定义某些特定的步骤。
from abc import ABCMeta,abstractmethod
class Template(metaclass=ABCMeta):
@abstractmethod
def stepOne(self):
pass
@abstractmethod
def stepSecond(self):
pass
@abstractmethod
def stepThree(self):
pass
def showInfo(self):
self.stepOne()
self.stepSecond()
self.stepThree()
class TemplateA(Template):
def stepOne(self):
print("A步骤一")
def stepSecond(self):
print("A步骤二")
def stepThree(self):
print("A步骤三")
class TemplateB(Template):
def stepOne(self):
print("B步骤一")
def stepSecond(self):
print("B步骤二")
def stepThree(self):
print("B步骤三")
def test():
t1 = TemplateA()
t1.showInfo()
t2 = TemplateB()
t2.showInfo()
test()
运行结果:
A步骤一
A步骤二
A步骤三
B步骤一
B步骤二
B步骤三
aaa