我是靠谱客的博主 怕孤单鸡翅,最近开发中收集的这篇文章主要介绍 python设计模式(二):建造者模式 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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


示例代码:

# -*- 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()
----------------------------
购买原料:砖瓦
设计方案:毛坯房
修建完工!设计建筑: 毛坯房 | 购买原料: 砖瓦
购买原料:玻璃
设计方案:写字楼
修建完工!设计建筑: 写字楼 | 购买原料: 玻璃


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

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

2019-03-12-17_40_10.png

最后

以上就是怕孤单鸡翅为你收集整理的 python设计模式(二):建造者模式 的全部内容,希望文章能够帮你解决 python设计模式(二):建造者模式 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部