// (1) 创建产品类 /** * 产品类 * */ public class Computer { private String cpu; private String memory; private String storage; private String graphicsCard; private boolean isBluetoothEnabled; public void setCpu(String cpu) { this.cpu = cpu; } public void setMemory(String memory) { this.memory = memory; } public void setStorage(String storage) { this.storage = storage; } public void setGraphicsCard(String graphicsCard) { this.graphicsCard = graphicsCard; } public void setBluetoothEnabled(boolean bluetoothEnabled) { isBluetoothEnabled = bluetoothEnabled; } @Override public String toString() { return "Computer{" + "cpu='" + cpu + '\'' + ", memory='" + memory + '\'' + ", storage='" + storage + '\'' + ", graphicsCard='" + graphicsCard + '\'' + ", isBluetoothEnabled=" + isBluetoothEnabled + '}'; } }
//(2) 创建构造者类
/** * * 构建者类 */ public class ComputerBuilder { private final Computer computer; public ComputerBuilder() { computer = new Computer(); } public ComputerBuilder setCpu(String cpu) { computer.setCpu(cpu); return this; } public ComputerBuilder setMemory(String memory) { computer.setMemory(memory); return this; } public ComputerBuilder setStorage(String storage) { computer.setStorage(storage); return this; } public ComputerBuilder setGraphicsCard(String graphicsCard) { computer.setGraphicsCard(graphicsCard); return this; } public ComputerBuilder setBluetoothEnabled(boolean isBluetoothEnabled) { computer.setBluetoothEnabled(isBluetoothEnabled); return this; } public Computer build() { return computer; } }
// (3)使用构建者模式创建Computer 对象
/** * 使用构建者模式创建 Computer 对象 */ public class BuilderPatternDemo { public static void main(String[] args) { ComputerBuilder computerBuilder = new ComputerBuilder(); Computer computer = computerBuilder.setCpu("") .setCpu("Intel Core i7") .setMemory("8GB DDR4") .setStorage("2TB SATA HDD") .setGraphicsCard("NVIDIA GTX 1050 Ti") .setBluetoothEnabled(true) .build(); System.out.println(computer.toString()); } }
// (4)运行结果图