一、基础概念
- 将?个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
- 它属于创建类模式,?般来说,如果?个对象的构建比较复杂,超出了构造函数所能包含的范围,就可以使用工厂模式和构建者模式
- 工厂模式与构建者模式的区别
- 工厂模式会产出?个完整的产品
- 构建者模式应用于更加复杂的对象的构建,甚至只会构建产品的?个部分
- 直白来说,就是使用多个简单的对象?步?步构建成?个复杂的对象
二、使用构建者模式来生产一个 computer
-
主要步骤
- 将需要构建的目标类分成多个部件(电脑可以分为主机、显示器、键盘、音箱等部件)
- 创建构建类
- 依次创建部件
- 将部件组装成目标对象
-
定义 computer,并创建其构建类 ComputerBuilder
package com.wujun.pojo; import lombok.Data; @Data public class Computer { /** * 显示器 */ private String displayer; /** * 主机 */ private String mainUnit; /** * 鼠标 */ private String mouse; /** * 键盘 */ private String keyboard; public static class ComputerBuilder { private Computer computer = new Computer(); public ComputerBuilder installDisplayer(String displayer) { computer.setDisplayer(displayer); return this; } public ComputerBuilder installMainUnit(String mainUnit) { computer.setMainUnit(mainUnit); return this; } public ComputerBuilder installMouse(String mouse) { computer.setMouse(mouse); return this; } public ComputerBuilder installKeyboard(String keyboard) { computer.setKeyboard(keyboard); return this; } public Computer build() { return computer; } } }
-
编写测试类
package com.wujun.pojo; public class ComputerTest { public static void main(String[] args) { Computer.ComputerBuilder computerBuilder = new Computer.ComputerBuilder(); Computer computer = computerBuilder .installDisplayer("显示器") .installKeyboard("键盘") .installMouse("鼠标") .installMainUnit("主机") .build(); System.out.println(computer); } }
-
测试结果
Computer(displayer=显示器, mainUnit=主机, mouse=鼠标, keyboard=键盘)