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实现根据月份和日期得到星座的方法
Mar 27 Python
Python中特殊函数集锦
Jul 27 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
python中用ctypes模拟点击的实例讲解
Nov 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
第五节--克隆
2006/11/16 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
结婚喜宴家长答谢词
2014/01/15 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
公司成本主管岗位责任制
2014/02/21 职场文书
C++程序员求职信范文
2014/04/14 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
高中同学会致辞
2015/08/01 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers