Java建造者模式是一种创建型设计模式,它允许您创建复杂的对象,同时将其构造过程分解为多个简单的步骤。在Java中,建造者模式可以通过以下方式实现:
-
创建一个产品类,该类包含要构建的对象的所有属性。
-
创建一个抽象建造者类,该类定义了构建产品所需的所有方法。
-
创建具体的建造者类,实现抽象建造者类中的方法,以构建产品。
-
创建一个指挥者类,该类使用建造者类中的方法来构建产品。
下面是一个简单的Java建造者模式示例:
// 创建产品类 public class Computer { private String cpu; private String memory; private String hardDisk; private String display; public void setCpu(String cpu) { this.cpu = cpu; } public void setMemory(String memory) { this.memory = memory; } public void setHardDisk(String hardDisk) { this.hardDisk = hardDisk; } public void setDisplay(String display) { this.display = display; } @Override public String toString() { return \"Computer{\" + \"cpu='\" + cpu + '\\'' + \", memory='\" + memory + '\\'' + \", hardDisk='\" + hardDisk + '\\'' + \", display='\" + display + '\\'' + '}'; } // 创建抽象建造者类 public abstract class ComputerBuilder { protected Computer computer; public Computer getComputer() { return computer; } public void createNewComputer() { computer = new Computer(); } public abstract void buildCpu(); public abstract void buildMemory(); public abstract void buildHardDisk(); public abstract void buildDisplay(); } // 创建具体建造者类 public class DesktopBuilder extends ComputerBuilder { @Override public void buildCpu() { computer.setCpu(“Intel Core i7”); } @Override public void buildMemory() { computer.setMemory(\"16GB DDR4\"); } @Override public void buildHardDisk() { computer.setHardDisk(\"1TB SSD\"); } @Override public void buildDisplay() { computer.setDisplay(\"27-inch 4K\"); } } // 创建指挥者类 public class Director { private ComputerBuilder computerBuilder; public void setComputerBuilder(ComputerBuilder computerBuilder) { this.computerBuilder = computerBuilder; } public Computer getComputer() { return computerBuilder.getComputer(); } public void constructComputer() { computerBuilder.createNewComputer(); computerBuilder.buildCpu(); computerBuilder.buildMemory(); computerBuilder.buildHardDisk(); computerBuilder.buildDisplay(); } } // 使用建造者模式创建对象 public class BuilderPatternDemo { public static void main(String[] args) { Director director = new Director(); ComputerBuilder desktopBuilder = new DesktopBuilder(); director.setComputerBuilder(desktopBuilder); director.constructComputer(); Computer computer = director.getComputer(); System.out.println(computer); } }
浙公网安备 33010602011771号