基本介绍
1.1 什么是建造者模式?
将复杂对象的构建和它的表示分离,使同样的构建过程产生不同的表示
- 建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。可以将复杂对象的构建和它的表示分离,使同样的构建过程产生不同的表示
- 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。
1.2 主要作用
在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。
- 用户只需要给出指定复杂对象的类型和内容;
- 建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)
1.3 解决的问题
- 方便用户创建复杂的对象(不需要知道实现过程)
- 代码复用性 & 封装性(将对象构建过程和细节进行封装 & 复用)
1.4 四个角色
-
Product(产品角色): 一个具体的产品对象。
-
Builder(抽象建造者): 创建一个 Product 对象的各个部件指定的 接口/抽象类。
-
ConcreteBuilder(具体建造者): 实现接口,构建和装配各个部件。
-
Director(指挥者): 构建一个使用 Builder 接口的对象。它主要是用于创建一个复杂的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。
原理类图
以建造者模式创建共享单车为例
Product(产品)类
public class Bike {
private Frame frame; //单车框架
private Seat seat; //单车车座
public Frame getFrame() {
return frame;
}
public void setFrame(Frame frame) {
this.frame = frame;
}
public Seat getSeat() {
return seat;
}
public void setSeat(Seat seat) {
this.seat = seat;
}
}
Builder(抽象建造者)类
//抽象builder类
abstract public