45 lines
935 B
Python
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======== 模板方法模式结束 ========")
|