设计模式之建造者模式
来源:互联网 发布:betterzip 3.1.2 mac 编辑:程序博客网 时间:2024/05/29 13:54
# -*- coding: utf-8 -*-"""建造者模式的Python实现"""from abc import ABCMeta, abstractmethod#抽象建造者,此类规定具体建造者需要实现的方法class AbcBuilder(object): __metaclass__ = ABCMeta def __init__(self): #product是用户需要的产品 self.product = None def newProduct(self): self.product = Product() @abstractmethod def product_size(self):pass @abstractmethod def product_price(self):pass#具体建造者,规定具体的实现细节class ConcretBuilderA(AbcBuilder): def product_size(self): self.product.size = 'Big' def product_price(self): self.product.price = 50 class ConcretBuilderB(AbcBuilder): def product_size(self): self.product.size = 'Small' def product_price(self): self.product.price = 25#Product的实例是用户需要的最终产品 class Product(): def __init__(self): self.size = None self.price = None def __repr__(self): return 'Size: %s, price: %s.' % (self.size, self.price)#指挥者类集成了繁琐的建造步骤 class Director(): def __init__(self): self.builder = None def createProduct(self): self.builder.newProduct() self.builder.product_size() self.builder.product_price() def getProduct(self): return self.builder.product #Clientif __name__ == '__main__': director = Director() director.builder = ConcretBuilderA() director.createProduct() product = director.getProduct() print(product) director.builder = ConcretBuilderB() director.createProduct() product = director.getProduct() print(product)
0 0
- 设计模式之建造者
- 设计模式 之 建造者
- 设计模式之建造者
- 设计模式之建造者模式
- 设计模式之建造者模式
- 五 设计模式之建造者模式
- 设计模式之建造者模式
- C# 设计模式之 建造者模式
- 【设计模式】之 Builder 建造者模式
- 设计模式之建造者模式学习
- 设计模式之建造者模式
- 设计模式笔记之---建造者模式
- 设计模式之建造者模式
- 设计模式之建造者模式
- 设计模式之建造者模式
- java设计模式之建造者模式
- 设计模式之建造者模式
- java设计模式之建造者模式
- hdu4762(数学概率)
- 创新中国总决赛之行
- 使用iTween需谨慎 --- 内存泄露
- Adobe Native Extension(ANE)-Actionscript通过语音来控制你的android应用-Air for android
- ios 字符串的比较
- 设计模式之建造者模式
- 自定义 spring mvc 拦截器(近期项目需求实现)
- 你的移动应用会维护你的隐私吗?
- PyQt挖地雷游戏学习笔记(5)
- 网站的GOOGLE的PR=5了,挺惊讶的
- 《沉默的云》.读书笔记(一)
- QEventLoop 的使用两例
- 一切皆对象之两个方法概括js,无函数签名(无多态),原型,闭包,封装,引用类型,继承……
- java自动探测文件的字符编码