// Java Builder Pattern Example
// Product class
class Computer {
private String cpu;
private String ram;
private String storage;
private String graphicsCard;
// Private constructor to enforce the use of the builder
private Computer(ComputerBuilder builder) {
this.cpu = builder.cpu;
this.ram = builder.ram;
this.storage = builder.storage;
this.graphicsCard = builder.graphicsCard;
}
// Getter methods
public String getCpu() {
return cpu;
}
public String getRam() {
return ram;
}
public String getStorage() {
return storage;
}
public String getGraphicsCard() {
return graphicsCard;
}
// Static inner class for the builder
public static class ComputerBuilder {
private String cpu;
private String ram;
private String storage;
private String graphicsCard;
// Setter methods that return the builder itself
public ComputerBuilder setCpu(String cpu) {
this.cpu = cpu;
return this;
}
public ComputerBuilder setRam(String ram) {
this.ram = ram;
return this;
}
public ComputerBuilder setStorage(String storage) {
this.storage = storage;
return this;
}
public ComputerBuilder setGraphicsCard(String graphicsCard) {
this.graphicsCard = graphicsCard;
return this;
}
// Build method to create the final object
public Computer build() {
return new Computer(this);
}
}
}
// Usage example
public class Main {
public static void main(String[] args) {
// Using the builder pattern to create a Computer object
Computer myComputer = new Computer.ComputerBuilder()
.setCpu("Intel i7")
.setRam("16GB")
.setStorage("512GB SSD")
.setGraphicsCard("NVIDIA RTX 3080")
.build();
// Print out the details of the computer
System.out.println("CPU: " + myComputer.getCpu());
System.out.println("RAM: " + myComputer.getRam());
System.out.println("Storage: " + myComputer.getStorage());
System.out.println("Graphics Card: " + myComputer.getGraphicsCard());
}
}
Product类 (Computer):
Computer 类是一个复杂对象,包含多个属性(如 CPU、RAM、存储和显卡)。ComputerBuilder 来创建 Computer 对象。Builder类 (ComputerBuilder):
ComputerBuilder 是一个静态内部类,提供了设置各个属性的方法,并返回自身以支持链式调用。build() 方法用于创建最终的 Computer 对象。使用示例:
Main 类中,展示了如何使用 ComputerBuilder 来构建一个 Computer 对象,并打印其属性。上一篇:java字符串包含另一个字符串
下一篇:java判断是否是数字
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站