🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 建造者模式(Builder Pattern) ### 一、使⽤多个简单的对象⼀步⼀步构建成⼀个复杂的对象,将⼀个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示; 二、允许⽤户只通过指定复杂对象的类型和内容就可以构建它们,不需要知道内部的具体构建细节; ### 比如: 电脑有低配、⾼配,组装需要CPU、内存、电源、硬盘、主板等 ### ![](https://img.kancloud.cn/93/13/9313ea1382886dcc24b525ebb0bcf956_1722x874.png) ### ## 核心组成: ### Builder:抽象建造者,定义多个通⽤⽅法和构建⽅法 ConcreteBuilder:具体建造者,可以有多个 Director:指挥者,控制整个组合过程,将需求交给建造者,由建造者去创建对象 Product:产品⻆⾊ ### ## 优点 ### 1、客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦 2、每⼀个具体建造者都相对独⽴,⽽与其他的具体建造者⽆关,更加精细地控制产品的创建过程 3、增加新的具体建造者⽆须修改原有类库的代码,符合开闭原则 4、建造者模式结合链式编程来使⽤,代码上更加美观 ### ## 缺点 ### 建造者模式所创建的产品⼀般具有较多的共同点,如果产品差异⼤则不建议使⽤ ### ## 具体实现(云效代码study-java项目当中设计模式当中有代码案例) ### ![](https://img.kancloud.cn/24/55/24556df706ab44c445784e5688f240e6_1917x991.png)