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妹子图简单爬虫实例
Jul 07 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
python爬取指定微信公众号文章
Dec 20 Python
Python实现Event回调机制的方法
Feb 13 Python
如何使用python代码操作git代码
Feb 29 Python
keras slice layer 层实现方式
Jun 11 Python
Python进行特征提取的示例代码
Oct 15 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根据某字段对多维数组进行排序的方法
2015/03/07 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
php简单统计中文个数的方法
2016/09/30 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
js导出txt示例代码
2014/01/14 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
python实现顺序表的简单代码
2018/09/28 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Django配置文件代码说明
2019/12/04 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
公务员职务工作的自我评价
2013/11/01 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python