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写的windows服务不能启动的问题
Apr 15 Python
python连接oracle数据库实例
Oct 17 Python
Python 获取div标签中的文字实例
Dec 20 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
Python文件路径名的操作方法
Oct 30 Python
python matplotlib包图像配色方案分享
Mar 14 Python
Python flask框架端口失效解决方案
Jun 04 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
Python读写csv文件流程及异常解决
Oct 20 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
python实现简单反弹球游戏
Apr 12 Python
Python 批量下载阴阳师网站壁纸
May 19 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生成静态页面详解
2006/11/19 PHP
php中文本操作的类
2007/03/17 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
深入php之规范编程命名小结
2013/05/15 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
python动态加载包的方法小结
2016/04/18 Python
Python解惑之整数比较详解
2017/04/24 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
python基于property()函数定义属性
2020/01/22 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
大学毕业生工作的自我评价
2013/10/01 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
学习保证书范文
2014/04/30 职场文书
家长学校教学计划
2015/01/19 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
Elasticsearch 基本查询和组合查询
2022/04/19 Python