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

说明

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。我们想要创建一个由多个部分构成的对象,而且它的构成需要一步接一步地完成。
只有当各个部分都创建好,这个对象才算是完整的。这正是建造者设计模式(Builder design
pattern)的用武之地。建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造
过程可用于创建多个不同的表现。

一般实现

抽象

class Builder(object):
  """基类"""
  def Part1(self):
    # 不同类型的产品,该步骤的细节可能不同
    raise NotImplementedError()

  def Part2(self):
    # 不同类型的产品,该步骤的细节可能不同
    raise NotImplementedError()

class Builder1(Builder):
  """派生类,生产builder1类型的产品"""
  def Part1(self):
    print 'builder1 Part1'

  def Part2(self):
    print 'builder1 Part2'

class Builder2(Builder):
  """派生类,生产builder2类型的产品"""
  def Part1(self):
    print 'builder2 Part1'

  def Part2(self):
    print 'builder2 Part2'

class Director(object):
  """指挥者,负责组织产品的构建过程"""
  def Build(self, builder):
    builder.Part1()
    builder.Part2()

def client():
  director = Director()
  director.Build(Builder1())
  director.Build(Builder2())

应用场景

  • 某类产品的构建由很多复杂组件组成;
  • 这些组件中的某些细节不同,构建出的产品表象会略有不同;
  • 通过一个指挥者按照产品的创建步骤来一步步执行产品的创建;
  • 当需要创建不同的产品时,只需要派生一个具体的建造者,重写相应的组件构建方法即可。

参考资料:

精通Python设计模式
–例子来源于网络

    原文作者:leason-love
    原文地址: https://blog.csdn.net/qq_29287973/article/details/78543182
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞