builder 模式
代码参考引用自:https://github.com/faif/python-patterns/blob/master/builder.py
代码
|
|
小结
Builder 模式的惯用介绍为:将复杂对象的创建同它们的具体表现形式(representation)区别开来,这样可以根据需要得到具有不同表现形式的对象。
从上面的代码来看就是,house 和 flat 两种 building 的创建细节被 Builder 类的具体实现类 BuilderHouse 和 BuilderFlat 的 build_floor()
和 build_size()
方法设置,由 Director 类的 construct_building()
方法隐藏创建细节。而最终产品 building 作为类 Director 的属性 Buidler 实例的属性,就可以根据 Director 类实例化时传入的 Builder 的具体实现类实例,用来创建和返回不同类型的 building 。从而实现了惯用介绍中说的 “将复杂对象的创建同它们的具体表现区别开来,可以根据需要得到具有不同表现形式的对象” 。