模板方法模式练习——饮料、数据读取与报告生成
按《Python 设计模式——模板方法模式》的建议,通过三道练习巩固:① 饮料冲泡流程(茶/咖啡);② 数据读取流程(打开→读→关闭);③ 报告生成流程(标题→正文→结尾)。每步都有完整可运行代码和验证要点。
练习一:饮料冲泡(茶与咖啡)
目的
体会模板方法在父类里固定流程(烧水→冲泡→倒杯→加调料),抽象步骤由子类实现(冲泡、加调料);子类不重写流程,只填“自己那几步”。
要求
- 定义抽象类 Beverage,包含:
- prepare()(模板方法):依次调用 boil_water()、brew()、pour_in_cup()、add_condiments();
- boil_water()、pour_in_cup() 为普通方法,内部只 print 一句话;
- brew()、add_condiments() 为抽象方法。
- 实现 Tea:brew 打印“泡茶叶”,add_condiments 打印“加柠檬”。
- 实现 Coffee:brew 打印“冲咖啡粉”,add_condiments 打印“加奶和糖”。
- 客户代码:分别调用 Tea().prepare() 和 Coffee().prepare(),验证输出顺序一致且步骤内容符合茶/咖啡。