系列文章
【设计模式】七大设计原则
【设计模式】第一章:单例模式
【设计模式】第二章:工厂模式
【设计模式】第三章:建造者模式
【设计模式】第四章:原型模式
【设计模式】第五章:适配器模式
【设计模式】第六章:装饰器模式
【设计模式】第七章:代理模式
【设计模式】第八章:桥接模式
【设计模式】第九章:外观模式 / 门面模式
【设计模式】第十章:组合模式
【设计模式】第十一章:享元模式
【设计模式】第十二章:观察者模式
【设计模式】第十三章:模板方法模式
【设计模式】第十四章:策略模式
【设计模式】第十五章:责任链模式
【设计模式】第十六章:迭代器模式
【设计模式】第十七章:状态模式
【设计模式】第十八章:备忘录模式
【设计模式】第十九章:访问者模式
【设计模式】第二十章:解释器模式
【设计模式】第二十一章:命令模式
【设计模式】第二十二章:中介者模式
一、定义
摘自百度百科:建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式是将一个复杂对象的构建与其分离开,使之可以通过同样构建过程来创建不同的内容。
二、角色分类
建造者模式共有四种角色
,他们分别为:
具体产品
最终被创建的对象
抽象建造者
描述产品对象的各个组成部分的建造方法
具体建造者
根据业务的不同,负责对象各部分的建造过程
使用者
负责创建对象的各个部分,保证对象按顺序或各部分完整创建
三、实现方式
本文会根据写法不同分为以下两种方式来为大家介绍:
- 基本写法
- 链式写法(我更倾向于这种写法)
1. 基本写法
比如:如果你想要自己DIY一辆车,这时候车可以按你的需求来组装(抽象建造者),而零件是由你来决定组装什么牌子的(具体建造者),而这辆车由你来组装(使用者),但是无论怎么组装它都是一辆车(具体产品)
具体产品
@Data
@ToString
public class Car {
/**
* 发动机
*/
private String engine;
/**
* 轮子
*/
private String wheel;
/**
* 气缸
*/
private String cylinder;
/**
* 车的颜色
*/
private String color;
}
抽象建造者