Java建造者模式是一种创建型设计模式,它允许您创建复杂的对象,同时将其构造过程分解为多个简单的步骤。在Java中,建造者模式可以通过以下方式实现:

  1. 创建一个产品类,该类包含要构建的对象的所有属性。

  2. 创建一个抽象建造者类,该类定义了构建产品所需的所有方法。

  3. 创建具体的建造者类,实现抽象建造者类中的方法,以构建产品。

  4. 创建一个指挥者类,该类使用建造者类中的方法来构建产品。

下面是一个简单的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);
    }
}                             

 

posted on 2023-07-17 17:14  square凉  阅读(21)  评论(0)    收藏  举报