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格式化压缩后的JS文件的方法
Mar 05 Python
python使用htmllib分析网页内容的方法
May 08 Python
简单解析Django框架中的表单验证
Jul 17 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
python使用tornado实现简单爬虫
Jul 28 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
如何获取Python简单for循环索引
Nov 21 Python
三个python爬虫项目实例代码
Dec 28 Python
用python制作个音乐下载器
Jan 30 Python
Python实现粒子群算法的示例
Feb 14 Python
Python中如何处理常见报错
Jan 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
php常用图片处理类
2016/03/16 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
PHP 文件上传限制问题
2019/09/01 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
Python创建模块及模块导入的方法
2015/05/27 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python读取word文本操作详解
2018/01/22 Python
python的中异常处理机制
2018/08/30 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
Django中FilePathField字段的用法
2020/05/21 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
中专生求职自荐信范文
2013/12/22 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
服务器nginx权限被拒绝解决案例
2022/09/23 Servers