博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模板方法模式
阅读量:4343 次
发布时间:2019-06-07

本文共 1072 字,大约阅读时间需要 3 分钟。

 

模式说明

定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。

模式结构图

程序示例

说明:泡茶与泡咖啡使用同一套流程

代码:

class Beverage(object):    """description of class"""    def makeBeverage(self):        self.boilWater()        self.brew()        self.pourInCup()        self.addCondiments()    def boilWater(self):        print 'boil water'    def brew(self):        print 'brew'    def pourInCup(self):        print 'pour into cup'    def addCondiments(self):        print 'add condiments'class Coffee(Beverage):    def brew(self):        print 'coffee'    def addCondiments(self):        print 'Adding Sugar and Milk...'class Tea(Beverage):    def brew(self):        print "tea"    def addCondiments(self):        print 'Adding Lemon...'if '__main__'==__name__:    coffee = Coffee()    coffee.makeBeverage()    tea = Tea()    tea.makeBeverage()

运行结果:

参考来源:

http://www.cnblogs.com/chenssy/p/3679190.html

http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

http://www.cnblogs.com/zhuxiongfeng/archive/2010/04/09/1708615.html

转载于:https://www.cnblogs.com/Siny0/p/11155733.html

你可能感兴趣的文章
手把手玩转win8开发系列课程(11)
查看>>
Linux Namespace : User
查看>>
交换两个整形变量的数值
查看>>
Linux----常用操作
查看>>
sequence
查看>>
Delphi错误:Stack overflow的解决方法
查看>>
一篇很全面的freemarker教程
查看>>
取消chrome(谷歌浏览器)浏览器下最小字体限制
查看>>
模板方法模式
查看>>
什么是ECC内存?
查看>>
使用Visual Studio 2013进行UI自动化测试
查看>>
13-集体照
查看>>
读了曾国藩家书,,心态逐渐平和起来。搞技术的如果缺乏信念的指引,生活会很乏味无聊!...
查看>>
前端javascript 错误 Uncaught SyntaxError: Unexpected token ILLEGAL
查看>>
Selenium WebDriver问题--无法打开Chrome浏览器
查看>>
2017.4.18 Java的Integer与int互转
查看>>
小程序接受返回数组的坑
查看>>
Arduino---HC-05 蓝牙模块
查看>>
构建之法读书笔记02——个人技术和流程
查看>>
解决VS2015安装Android SDK 后文件不全及更新问题
查看>>