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解析JSON数据的基本方法
Oct 15 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
PyQt5每天必学之事件与信号
Apr 20 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
python django中8000端口被占用的解决
Dec 17 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
keras 读取多标签图像数据方式
Jun 12 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 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入门经历和学习过程分享
2014/04/11 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
jquery实现加载等待效果示例
2013/09/25 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
numpy返回array中元素的index方法
2018/06/27 Python
利用python开发app实战的方法
2019/07/09 Python
详解python播放音频的三种方法
2019/09/23 Python
python之array赋值技巧分享
2019/11/28 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
大学生校园创业计划书
2014/02/08 职场文书
铁路安全事故反思
2014/04/26 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
会计专业自荐信
2014/06/03 职场文书
故宫英文导游词
2015/01/31 职场文书