建造者(Builder)设计模式
Posted fengzhida
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建造者(Builder)设计模式相关的知识,希望对你有一定的参考价值。
建造者(Builder)设计模式
1.0.0 产生建造者模式的原因
????在类的数据特别复杂的时候,创建一个类需要花费很长的时间,因为有些类需要根据不同的场合进行不同的初始化。在类结构比较复杂,而且初始化比较困难的情况下,封装好的类创建步骤可以减少工作量,提高稳定性。这就是为什么需要建造者模式的原因。
2.0.0 什么是建造者模式?
将复杂对象的构建和对象的表示分离,使得同样的构建过程可以创建不同的表示。
3.0.0 建造模式的使用场景
- 复杂对象的创建(参数较多,而且比较初始化困难)--->创建的封装
4.0.0 建造者模式的对象
- 产品对象
- 抽象建造器
- 具体建造器
- 指挥者
5.0.0 建造者模式的一般实现
@Slf4j
public class BuilderPattern
class CarDirector
private IBuilder builder;
public CarDirector(IBuilder builder) this.builder = builder;
public Car construct()
builder.buildWheel();
builder.buildBody();
builder.buildEngine();
return builder.build();
interface IBuilder
void buildWheel();
void buildBody();
void buildEngine();
Car build();
class CarBuilder implements IBuilder
private Car car = new Car();
@Override
public void buildWheel() car.setWheel("wheel");
@Override
public void buildBody() car.setWheel("body");
@Override
public void buildEngine() car.setWheel("engine");
@Override
public Car build() return car;
@Setter
class Car
private String wheel;
private String body;
private String engine;
6.0.0 建造者模式和工厂模式的联系和区别
- 工厂模式--> 工厂的分配以及产品线的创建/产品的创建
建造者模式-->产品的组装过程,先装螺丝,后装电线....
- 工厂模式:董事长要做一批产品,根据产品的的不同分配不同的分工厂生产产品。
- 建造者模式:流水线组装产品,线长需要根据不同的需求,安排不同的人组装一个产品。
高度不同!!! 董事长和线长的区别
以上是关于建造者(Builder)设计模式的主要内容,如果未能解决你的问题,请参考以下文章