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_建造者模式的更多相关文章
- 23种设计模式--建造者模式-Builder Pattern
一.建造模式的介绍 建造者模式就是将零件组装成一个整体,用官方一点的话来讲就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示.生活中比如说组装电脑,汽车等等这些都是建 ...
- PHP设计模式(五)建造者模式(Builder For PHP)
建造者模式:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式. 设计场景: 有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,爱好等信息,才能获得用 ...
- java设计模式之建造者模式
学习了设计模式,一直感觉有进步又没有进步,与同学.同事探讨了一下.变化不可能一会就可以的,需要努力坚持.不管进步大小,也不管是否进步,做到勿忘初心,做自己喜欢的事情就好.还有几个设计模式一直没有写,原 ...
- 设计模式--建造者模式Builder(创建型)
一.首先看建造者模式的UML图: 二.再来看一个建造者模式的例子 class Builder { public: virtual void BuildHead() {} virtual void Bu ...
- C#设计模式之建造者模式
建造者模式可以将部件本身和它们的组装过程分开,关注如何一步步创建一个包含多个组成部分的复杂对象,用户只需要指定复杂对象的类型即可得到该对象,而无须知道其内部的具体构造细节. 建造者模式:将一个复杂对象 ...
- C#设计模式-建造者模式
在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成. 例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由C ...
- C#设计模式系列:建造者模式(Builder)
1.建造者模式简介 1.1>.定义 建造者模式(Builder)将复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. 1.2>.使用频率 中低 1.3>.原型模式应用 ...
- Java设计模式之建造者模式(Builder)
前言: 最近一直在学习okHttp,也对其做了一些整理,okHttp和Retrofit结合大大加速我们的开发效率,源码里面采用了很多设计模式,今天我们来学习一下其中的设计模式之一建造者模式. 建造者模 ...
- Net设计模式实例之建造者模式(Builder Pattern)
一.建造者模式简介(Brief Introduction) 建造者模式(Builder Pattern),将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示. 建造者模式的优点是 ...
随机推荐
- HDU.1529.Cashier Employment(差分约束 最长路SPFA)
题目链接 \(Description\) 给定一天24h 每小时需要的员工数量Ri,有n个员工,已知每个员工开始工作的时间ti(ti∈[0,23]),每个员工会连续工作8h. 问能否满足一天的需求.若 ...
- angularJs中的checkboxs
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 手动更新nexus的索引
安装nexus 1.下载 源码包 nexus-2.13.0-01-bundle.tar.gz 下载地址 http://www.sonatype.org/nexus/ 2.解压源码包 3.启动并访问 . ...
- 早期(编译器)优化--javac编译器
java语言的“编译期”其实是一段“不确定”的操作过程,可能是指一个前端编译器把.java变成.class的过程,也可能是指虚拟机的后端运行期编译器(JLT)把字节码转变成机器码的过程,也有可能是使用 ...
- CocosCreator项目结构
1,通过 Dashboard,我们可以创建一个 Hello World 项目作为开始,创建之后的项目有特定的文件夹结构.[参考来源:官方文档] 2,初次创建并打开一个 Cocos Creator 项目 ...
- Oracle 增加 修改 删除 列
语法结构如下: alter table tablename add (column datatype [default value][null/not null],….); alter table t ...
- android http中请求访问添加 cookie
第一种HashMap<String, String> map = new HashMap<String, String>();map.put("cookie" ...
- Ubuntu下升级Git以及获取ssh keys的代码
今天开始用的git,记下获取ssh keys 的代码 ? 1 2 3 ssh-keygen -t rsa -C "your_email@example.com" # Enter f ...
- tex---就是tex文件,这个地球人都知道,是文章所在的主要文件
本demo中包括两个文件example.tex和myref.bib,用的时候參照改即可啦. example.tex:用的时候将'\'和后面文字中间的空格去掉 ----------------- \do ...
- Kubernetes 编排系统
1.1 Kubernetes简介 1.1.1 什么是Kubernetes Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署.扩展和管理 ...