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切片用法实例教程
Sep 08 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
Python的迭代器和生成器
Jul 29 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
Python中的默认参数实例分析
Jan 29 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
在python中bool函数的取值方法
Nov 01 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Python命令行参数argv和argparse该如何使用
Feb 08 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
javascript基本算法汇总
2016/03/09 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
JS实现吸顶特效
2020/01/08 Javascript
python遍历数组的方法小结
2015/04/30 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python 遍历pd.Series的index和value
2019/11/26 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python deque模块简单使用代码实例
2020/03/12 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
应届生自荐信范文
2014/02/21 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
保险公司演讲稿
2014/09/02 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python