实现策略模式和模板方法模式示例,添加支付策略和烹饪流程,增强代码可读性
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""
|
||||
实例:
|
||||
汤宝宝炒西红柿鸡蛋。
|
||||
"""
|
||||
|
||||
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======== 模板方法模式结束 ========")
|
||||
Reference in New Issue
Block a user