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 深入理解yield
Sep 06 Python
python 正确保留多位小数的实例
Jul 16 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 Python
python中return如何写
Jun 18 Python
python3 简单实现组合设计模式
Jul 02 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
python 如何区分return和yield
Sep 22 Python
python制作抽奖程序代码详解
Jan 15 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 Python
Python内置的数据类型及使用方法
Apr 13 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 SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
一些PHP的面试题
2015/05/06 面试题
大专生自我鉴定范文
2013/10/01 职场文书
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
本溪关门山导游词
2015/02/09 职场文书
工作时间调整通知
2015/04/24 职场文书
民事代理词范文
2015/05/25 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL