抽象工厂方法描述的是建造一系列的产品,但是并没有说明产品是如何具体的构建。
有些类型的产品的构建是按照特定的工序去完成的,这时候就可以用到生成器模式。
生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程但是构建出的产品不一样。
一个示例UML图:
(图片来源:https://www.jianshu.com/p/4dcc723b676e ,,,太懒了实在不想画了)
Director 类就是表示这个建造的过程,即这里的part A B C...以何种顺序建造;
Builder类就是part A B C ...是如何建造的一个接口;
ConcreteBuilder类就是具体产品的各个部分如何建造的,其中getResult()就是获得这个建造好的产品。
适用情况:
如果创建对象的算法,应该独立于该对象的组成部分以及它们的装配方式时;
如果同一个构建过程有着不同的表示时;
网友评论