1
0
Fork 0
design-patterns/python/template_method/main.py

45 lines
935 B
Python

"""
实例:
汤宝宝炒西红柿鸡蛋。
"""
from abc import ABC, abstractmethod
class Dish(ABC):
@abstractmethod
def prepare_ingredients(self):
pass
@abstractmethod
def cook(self):
pass
@abstractmethod
def serve(self):
pass
def do_cooking(self):
print("第一步:", end="")
self.prepare_ingredients()
print("第二步:", end="")
self.cook()
print("第三步:", end="")
self.serve()
class TomatoEggDish(Dish):
def prepare_ingredients(self):
print("准备西红柿和鸡蛋。")
def cook(self):
print("炒西红柿和鸡蛋。")
def serve(self):
print("装盘,西红柿鸡蛋炒好了。")
if __name__ == "__main__":
print("========== 模板方法模式 ==========")
dish = TomatoEggDish()
dish.do_cooking()
print("\n======== 模板方法模式结束 ========")