本文实例讲述了Python设计模式之模板方法模式。分享给大家供大家参考,具体如下:
模板方法模式(模板方法模式):定义一个操作中的算法骨架,将一些步骤延迟至子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
下面是一个模板方法模式的一个演示:
# !/usr/bin/env python # - * -编码:utf - 8 - * __author__=鞍驳稀? ”“” 大话设计模式 设计模式,模板方法模式 模板方法模式(模板方法模式):定义一个操作中的算法骨架,将一些步骤延迟至子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 使用场景:当不变和可变的行为在方法的子类实现中混合在一起时,不变的行为就会在子类中重复出现,用模板方法模式把这些不变的行为搬到单一的地方,帮助子类摆脱重复不变的行为纠缠 ”“” 类报纸(对象): def问题1(自我): 打印”题目1” 打印self.answer1 () def问题2(自我): 打印”题目2” 打印self.answer2 () def answer1(自我): 回报” def answer2(自我): 回报” 类TestPaperA(报纸): def answer1(自我): 返回的答案A1 ' def answer2(自我): 返回的答案A2” 类TestPaperB(报纸): def answer1(自我): 返回的答案B1” def answer2(自我): 返回的答案B2” if __name__==癬_main__”: test1=TestPaperA () test2=TestPaperB () 打印”试卷” test1.question1 () test1.question2 () 打印”试B卷” test2.question1 () test2.question2 () >之前运行结果:
试卷
引用>
题目1
答案A1
题目2
答案A2
试卷B
题目1
答案B1
题目2
答案B2上面类的设计如下图:
报纸是抽象类,定义抽象模板并实现了抽象模板方法,TestPaper实现父类的一个或多个抽象方法
当不变和可变的行为在子类的方法中混合在一起时,不变的行为就会在子类中重复出现,通过模板方法模式把这些行为搬到单一的地方,帮助子类摆脱重复的不变行为的纠缠
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python套接字编程技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
Python设计模式之模板方法模式实例详解