建造者模式定义:
将一个复杂对象的构建与它的表示分离,使得同样构建过程可以创建不同的表示。
建造者模式结构图:
建造者模式主要优缺点:
优点:
1.在建造者模式中。客户端不必知道穿品内组成的细节。讲产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。
2.每一个具体建造者都相对独立。而与其他具体建造者无关,因此方便替换具体创造者或者增加新的具体建造者。由于指挥者针对抽象建造者变成,增加新的具体建造者无须修改原有类库的代码,系统扩展方便,符合开闭原则。
3.可以更加精细的控制产品的创建过程。将复杂产品的创建逐步分解到不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程。
缺点:
1.建造者模式所有的产品一遍具有较多的共同点。其组成部分相似,如果产品之间的差异很大,就不使用建造者模式,因此其适用范围收到一定限制,
2.如果产品内部结构复杂切多变。可能会需要定义很多具体的构造者类来实现。就导致系统变得很庞大,
建造者适用场景:
1.需要省着的产品对象有复杂的内部结构。这些产品对象通常包含多个成员变量
2.需要生成的产品对象的属性相遇依赖,需要指定只生成顺序。
3.对象的创建过程独立于创建改对象的类。在建造者模式中通过引入指挥者类。将创建过程封装在指挥者类中,而不在建造者类中和客户类中。
4.隔离复杂对象的创建和使用,并使得相同的穿件过程可以创建不同产品