STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

python设计模式之建造者模式

###

意义:

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

适用性:
  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  • 当构造过程必须允许被构造的对象有不同的表示时。
    举例:

    ``` class Builder(object): “"”建造流程:原料—施工””” def init(self): self.materiel = None self.design = None

    def run(self): print(f’修建完工!设计建筑: {self.design} | 购买原料: {self.materiel}’)

class A(Builder): “"”方案A,修建毛坯房””” def get_materiel(self): self.materiel = “砖瓦”

def get_design(self):
    self.design = "毛坯房"

class B(Builder): “"”方案B,修建写字楼””” def get_materiel(self): self.materiel = “玻璃”

def get_design(self):
    self.design = "写字楼"

class Director(object): “"”调度:买原料-组织施工””” def init(self): self.programme = None

def build(self):
    self.programme.get_materiel()
    print(f"购买原料:{self.programme.materiel}")
    self.programme.get_design()
    print(f"设计方案:{self.programme.design}")
    self.programme.run()

if name == ‘main’: # 修建毛坯房 test = Director() test.programme = A() test.build()

# 修建写字楼
test = Director()
test.programme = B()
test.build() ```

输出结果:

购买原料:砖瓦
设计方案:毛坯房
修建完工!设计建筑: 毛坯房 | 购买原料: 砖瓦
购买原料:玻璃
设计方案:写字楼
修建完工!设计建筑: 写字楼 | 购买原料: 玻璃
最近的文章

python设计模式之抽象工厂

抽象工厂意义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用性: 一个系统要独立于它的产品的创建、组合和表示时。 一个系统要由多个产品系列中的一个来配置时。 当你要强调一系列相关的产品对象的设计以便进行联合使用时。 当你提供一个产品类库,而只想显示它们的接口而不是实现时。举例:class A(object): def __init__(self): self.word = "运行A" def run(self): p...…

水滴石穿继续阅读
更早的文章

python设计模式之工厂模式

工厂模式意义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。适用性: 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。举例:#python3class A(object): def __init__(self): self.word = "运行...…

水滴石穿继续阅读