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中的urllib2模块
Nov 13 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Python占用的内存优化教程
Jul 28 Python
浅析python中while循环和for循环
Nov 19 Python
django queryset相加和筛选教程
May 18 Python
python3.4中清屏的处理方法
Jul 06 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Python中可变和不可变对象的深入讲解
Aug 02 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
快速解决element的autofocus失效问题
2020/09/08 Javascript
vue v-model的用法解析
2020/10/19 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
Python读写unicode文件的方法
2015/07/10 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Django实现学生管理系统
2019/02/26 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
高中生期末评语大全
2014/01/28 职场文书
优秀教师先进材料
2014/12/16 职场文书
公司人事管理制度
2015/08/05 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
JavaCV实现照片马赛克效果
2022/01/22 Java/Android