时间:2021-05-22
本文实例讲述了Python设计模式之建造者模式。分享给大家供大家参考,具体如下:
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
下面是一个建造者模式的demo
#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = 'Andy'"""大话设计模式设计模式——建造者模式建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以常见不同的表示特性: 指挥者(Director) 指挥 建造者(Builder) 建造 Product"""import abcclass Builder(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def create_header(self): pass @abc.abstractmethod def create_body(self): pass @abc.abstractmethod def create_hand(self): pass @abc.abstractmethod def create_foot(self): passclass Thin(Builder): def create_header(self): print '瘦子的头' def create_body(self): print '瘦子的身体' def create_hand(self): print '瘦子的手' def create_foot(self): print '瘦子的脚'class Fat(Builder): def create_header(self): print '胖子的头' def create_body(self): print '胖子的身体' def create_hand(self): print '胖子的手' def create_foot(self): print '胖子的脚'class Director(object): def __init__(self, person): self.person = person def create_preson(self): self.person.create_header() self.person.create_body() self.person.create_hand() self.person.create_foot()if __name__=="__main__": thin = Thin() fat = Fat() director_thin = Director(thin) director_fat = Director(fat) director_thin.create_preson() director_fat.create_preson()运行结果:
瘦子的头
瘦子的身体
瘦子的手
瘦子的脚
胖子的头
胖子的身体
胖子的手
胖子的脚
上面类的设计如下图:
指挥者Director 调用建造者Builder的对象 具体的建造过程是在Builder的子类中实现的
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP设计模式之建造者模式(Builder)原理与用法。分享给大家供大家参考,具体如下:这个建造者模式,我们也可以称为生成器模式,核心思想是将一个
本文实例讲述了Java设计模式之建造者模式。分享给大家供大家参考,具体如下:建造者模式(builder)可以将部件和其组装过程分开.一步一步创建一个复杂的对象。
本文实例讲述了PHP设计模式之建造者模式。分享给大家供大家参考,具体如下:建造者模式:将复杂对象的创建过程和表示进行分离(好吧,我也看不懂什么意思1)。来点我人
本文实例讲述了Python实现的建造者模式。分享给大家供大家参考,具体如下:#!/usr/bin/python#-*-coding:utf-8-*-#建造者基类
本文实例讲述了javascript设计模式–建造者模式原理与应用。分享给大家供大家参考,具体如下:介绍:建造者模式又称为生成器模式,它是一种较为复杂、使用频率相