python版本的模板方法模式

模板方法将不变的行为移到超类,去除子类中的重复代码来体现它的优势
# -*- coding:UTF-8 -*- import abc class AbstractClass(metaclass=abc.ABCMeta): @abc.abstractmethod def primitive_operation1(self): pass @abc.abstractmethod def primitive_operation2(self): pass def template_method(self): self.primitive_operation1() self.primitive_operation2() print("") class ConcreteClassA(AbstractClass): def primitive_operation1(self): print("具体A方法1实现") def primitive_operation2(self): print("具体A方法2实现") class ConcreteClassB(AbstractClass): def primitive_operation1(self): print("具体B方法1实现") def primitive_operation2(self): print("具体B方法2实现") if __name__=="__main__": c = ConcreteClassA() c.template_method() c=ConcreteClassB() c.template_method()

浙公网安备 33010602011771号