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来使用七牛云存储的方法详解
Aug 07 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
python编程线性回归代码示例
Dec 07 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
基于Python+QT的gui程序开发实现
Jul 03 Python
python 下划线的不同用法
Oct 24 Python
Python: glob匹配文件的操作
Dec 11 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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使浏览器直接下载pdf文件的方法
2013/11/15 PHP
详谈PHP文件目录基础操作
2014/11/11 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
社区巾帼文明岗事迹材料
2014/06/03 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
预备党员自我评价范文
2015/03/04 职场文书
MySQL 时间类型的选择
2021/06/05 MySQL
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫