美文网首页python模式设计思想
python设计模式(二):建造者模式

python设计模式(二):建造者模式

作者: Python之战 | 来源:发表于2019-02-03 22:43 被阅读14次

建造者,顾名思义是修建建筑的工人,按照基本的施工方式:打桩-浇筑框架-砌墙-装修,同样的施工流程却能造就千差万别的建筑,因为不同的材料、不同设计,可以表现出千差万别,这就是建造者模式的简要理解。

示例代码:

# -*- coding:utf-8 -*-


class Builder():
 """建造流程:原料—施工"""
 def __init__(self):
        self.materiel = None
        self.design = None

 def run(self):
        print('修建完工!设计建筑: %s | 购买原料: %s' % (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:
 """调度:买原料-组织施工"""
 def __init__(self):
        self.programme = None

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


if __name__ == '__main__':
 # 修建毛坯房
    test = Director()
    test.programme = A()
    test.build()

 # 修建写字楼
    test = Director()
    test.programme = B()
    test.build()
----------------------------
购买原料:砖瓦
设计方案:毛坯房
修建完工!设计建筑: 毛坯房 | 购买原料: 砖瓦
购买原料:玻璃
设计方案:写字楼
修建完工!设计建筑: 写字楼 | 购买原料: 玻璃

上面是一个很简单直白的例子,建造者模式应该有几个关键要素:相同的流程、不同的表示、修建者。也就是同一个对象(建筑)在同一修建者组织下,以相同的实例化流程(施工流程)来达到不同的表示效果(毛坯、写字楼)

这样的好处使得构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

image

模式设计:程序发展史的结晶,力求以为简单直白的原创文章理解最核心的要义,欢迎关注。

相关文章

  • python设计模式(二):建造者模式

    建造者,顾名思义是修建建筑的工人,按照基本的施工方式:打桩-浇筑框架-砌墙-装修,同样的施工流程却能造就千差万别的...

  • Retrofit

    Retrofit设计模式 动态代理,装饰模式,建造者模式,抽象工厂模式,适配器模式 建造者模式创建Retrofit...

  • Java 十一种设计模式深入理解

    目录一、工厂设计模式二、抽象工厂模式三、单例设计模式四、建造者(Builder)模式五、原型模式六、适配器设计模式...

  • Python设计模式 - 建造者模式

    """ 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 相关模式:思路和模...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 设计模式(十四)中介者模式

    相关文章 设计模式(一)设计六大原则设计模式(二)单例模式的七种写法设计模式(三)建造者模式设计模式(四)简单工厂...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 1. 模式定义 建造者模式又可以成为生成器模式,它属于对象创建型模式。建造者模式将一个复杂对...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

网友评论

    本文标题:python设计模式(二):建造者模式

    本文链接:https://www.haomeiwen.com/subject/dymusqtx.html