Python实现的建造者模式示例


Posted in Python onAugust 06, 2018

本文实例讲述了Python实现的建造者模式。分享给大家供大家参考,具体如下:

#!/usr/bin/python
# -*- coding:utf-8 -*-
#建造者基类
class PersonBuilder():
  def BuildHead(self):
    pass
  def BuildBody(self):
    pass
  def BuildArm(self):
    pass
  def BuildLeg(self):
    pass
#胖子
class PersonFatBuilder(PersonBuilder):
  type = u'胖子'
  def BuildHead(self):
    print u'构建%s的头' % self.type
  def BuildBody(self):
    print u'构建%s的身体' % self.type
  def BuildArm(self):
    print u'构建%s的手' % self.type
  def BuildLeg(self):
    print u'构建%s的脚' % self.type
#瘦子
class PersonThinBuilder(PersonBuilder):
  type = u'瘦子'
  def BuildHead(self):
    print u'构建%s的头' % self.type
  def BuildBody(self):
    print u'构建%s的身体' % self.type
  def BuildArm(self):
    print u'构建%s的手' % self.type
  def BuildLeg(self):
    print u'构建%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()
  return
if __name__ == '__main__':
  clientUI();

运行结果:

构建瘦子的头
构建瘦子的身体
构建瘦子的手
构建瘦子的脚
构建胖子的头
构建胖子的身体
构建胖子的手
构建胖子的脚

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python函数装饰器用法实例详解
Jun 04 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
sklearn+python:线性回归案例
Feb 24 Python
python 代码运行时间获取方式详解
Sep 18 Python
Python实现自动装机功能案例分析
Oct 22 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 #Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 #Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 #Python
Django添加sitemap的方法示例
Aug 06 #Python
python中scikit-learn机器代码实例
Aug 05 #Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 #Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 #Python
You might like
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
List the Codec Files on a Computer
2007/06/18 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
2020/04/27 Javascript
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
python变量的作用域是什么
2020/05/26 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
促销活动总结
2014/04/28 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
入党积极分子个人总结
2015/03/02 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL