设计模式-行为型模式之模板方法

定义抽象基类,规范接口内部方法执行顺序

在进阶篇中,没专门提过抽象基类,在这里顺便就提一下

  抽象基类的核心特征:不能被直接实例化(除非所有的抽象方法都被实现)

  相反,抽象基类和元类一样,一般都被当做顶层基类使用,派生类必须实现抽象类中指定的方法,且方法名也必须保持一致

  抽象基类的主要用途:从一种高层次上规范编程接口

话不多说,直接上代码

 1 import abc
 2 
 3 
 4 class Template(metaclass=abc.ABCMeta):
 5     @abc.abstractmethod
 6     def pre(self):
 7         ...
 8 
 9     @abc.abstractmethod
10     def execute(self):
11         ...
12 
13     def func(self):
14         """定义内部接口执行顺序"""
15         self.pre()
16         self.execute()
17 
18 
19 class Valley(Template):
20     def pre(self):
21         print("预执行")
22 
23     def execute(self):
24         print("正式执行")
25 
26 
27 if __name__ == '__main__':
28     Valley().func()

output:

  预执行
  正式执行

热门相关:首席的独宠新娘   仗剑高歌   寂静王冠   网游之逆天飞扬   人间欢喜