实现细节
决策者(根据建造者类型产生具体产品,相同的创建过程创建不用的产品)、抽象建造者、具体建造者、产品
建造者模式优点
1)客户端无需知道产品内部的构建细节,将产品本身与创建过程解耦;
2)每一个具体建造者都相对独立,与其他建造者无关,可以更加精细的控制产品的创建过程;
3)增减新的建造者无需修改原有的类库的代码,符合开闭原则;
4)建造者模式结合链式编程可以使代码更美观。
建造者模式缺点
建造者模式要求所构建的产品一般具有较多的共同点,如果产品差异大则不建议使用。
JDK中的使用
tcp传输协议protobuf生成的api,java中的StringBuilder
建造者模式与抽象工厂模式的比较
建造者模式返回一个组装好的完整的产品,抽象工厂模式返回一系列相关的产品,这些产品位于不同的产品等级结构,
构成了一个产品族。