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中for循环详解
Jan 17 Python
Python学习笔记_数据排序方法
May 22 Python
深入理解Python变量与常量
Jun 02 Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python----数据预处理代码实例
Mar 20 Python
python取余运算符知识点详解
Jun 27 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 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
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
javascript实现密码验证
2015/11/10 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
Python内建模块struct实例详解
2018/02/02 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
python 绘制国旗的示例
2020/09/27 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
python中二分查找法的实现方法
2020/12/06 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
和解协议书
2014/04/16 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
电话营销开场白
2015/05/29 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript