定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道。
适用场景:一个对象具有非常复杂的内部结构;想把复杂对象的创建和使用分离。
优点:封装性好,创建和使用分离。
拓展性好:建造类之间独立、一定程度上解耦。
缺点:产生多余的Builder对象;产品内部结构发生变化,建造者都要修改,成本较大。
建造者模式与工厂模式的区别:
1、建造者模式更注重于方法的调用顺序;工厂模式更注重于创建产品。
2、粒度不同:建造者用于创建复杂的产品,工厂模式粒度较小。
3、关注点不同:工厂模式只关注创建,建造者模式还关注其构件。