建造者模式(python实现)
来源:互联网 发布:乐高机器人软件 编辑:程序博客网 时间:2024/06/02 06:47
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造者模式更为高层一点,将所有细节都交由子类实现。
代码:
#encoding=utf-8##by panda#建造者模式def printInfo(info): print unicode(info, 'utf-8').encode('gbk')#建造者基类class PersonBuilder(): def BuildHead(self): pass def BuildBody(self): pass def BuildArm(self): pass def BuildLeg(self): pass #胖子class PersonFatBuilder(PersonBuilder): type = '胖子' def BuildHead(self): printInfo("构建%s的头" % self.type) def BuildBody(self): printInfo("构建%s的身体" % self.type) def BuildArm(self): printInfo("构建%s的手" % self.type) def BuildLeg(self): printInfo("构建%s的脚" % self.type) #瘦子class PersonThinBuilder(PersonBuilder): type = '瘦子' def BuildHead(self): printInfo("构建%s的头" % self.type) def BuildBody(self): printInfo("构建%s的身体" % self.type) def BuildArm(self): printInfo("构建%s的手" % self.type) def BuildLeg(self): printInfo("构建%s的脚" % self.type)#指挥者class PersonDirector(): pb = None; def __init__(self, pb): self.pb = pb def CreatePereson(self): self.pb.BuildHead() self.pb.BuildBody() self.pb.BuildArm() self.pb.BuildLeg()def clientUI(): pb = PersonThinBuilder() pd = PersonDirector(pb) pd.CreatePereson() pb = PersonFatBuilder() pd = PersonDirector(pb) pd.CreatePereson() returnif __name__ == '__main__': clientUI();
类图:
- 建造者模式(python实现)
- python 建造者模式(实现,特点)
- 设计模式六(建造者模式,采用python实现)
- 建造者模式(python)
- Python实现设计模式--05.建造者模式(Builder Pattern)
- 设计模式之python版(九)--建造者模式
- php实现建造者模式
- 建造者模式c++实现
- C++实现建造者模式
- 建造者模式lua实现
- 建造者模式C++实现
- C++实现建造者模式
- 建造者模式C++实现
- 建造者模式的实现
- 建造者模式 - C++实现
- 建造者模式(java实现)
- Python设计模式(五)【建造者模式】
- Python设计模式-建造者模式
- Python 编码问题整理
- Group by与having理解
- 【js】动态添加行
- CppUnit使用指南
- RouterOS PPPOE Server 服务器设置
- 建造者模式(python实现)
- UVa Problem 10003 Cutting Sticks (切割木棍)
- 为什么乔布斯在癌症治疗上选择了保守疗法
- 10个管理工作时间的小技巧
- 【java】根据开始时间、结束时间得到两个时间段内所有的日期
- java.lang.ClassCastException: antlr.CommonToken异常[weblogic]
- 欲学习汇编的建议
- 多线程之NSInvocationOperation
- 动态添加、删除select得option功能演示整理