建造者模式
定义:使用多个简单的对象一步一步构建成一个复杂的对象。
建造者模式的优缺点
优点
- 各个具体的建造者相互独立,有利于系统的扩展。
- 客户端不必知道产品内部组成的细节,便于控制细节风险。
缺点
- 产品的组成部分必须相同,这限制了其使用范围。
- 如果产品的内部变化复杂,该模式会增加很多的建造者类。
建造者模式的应用场景
-
需要生成的对象具有复杂的内部结构.
-
需要生成的对象内部属性本身互相依赖.
建造者模式的实现
1、建造者模式的角色
- 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的方法。
- 抽象建造者(Concrete Builder):实现Builder接口并产生具体的简单对象,以供合成复杂对象.
- 指挥者(Director):它调用建造者对象中的部件构造与装配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。
- 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个滅部件。
2、建造者模式的实现
(1)创建产品对象,包含多个组成部件的复杂对象
/**
* 建造者模式的产品对象
*/
@Data
public class Car {
private String frame;
private String wheel;
private String engine;
}
(2)创建抽象建造者,包含创建产品各个子部件的抽象方法。
/**
*抽象建造者,包含创建产品各个子部件的抽象方法
*/
public interface Builder {
void buildWheel();
void buildFrame();
void buildEngine();
Car createCar();