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 相关文章推荐
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
django初始化数据库的实例
May 27 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
python numpy实现rolling滚动案例
Jun 08 Python
python实现自动化群控的步骤
Apr 11 Python
python 模块重载的五种方法
Apr 24 Python
总结Python常用的魔法方法
May 25 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 MemCached高级缓存配置图文教程
2010/08/05 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python爬取APP下载链接的实现方法
2016/09/30 Python
Python实现的栈(Stack)
2018/01/26 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
html5绘制时钟动画
2014/12/15 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
安全先进班组材料
2014/12/26 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL