建造者模式实现计算机组装(Java代码实例)

目录

应用场景

建造者模式原理图

代码

Computer类

ComputerBuilder类

Designer类

DesignA类

Test类

运行结果


应用场景

实现计算机的组装:用户去购买计算机时可以根据自己的需要选购计算机的CPU、内存条、显卡、主板、硬盘、显示器、键盘、鼠标等各个配件,用建造者模式解决这个问题。

扫描二维码关注公众号,回复: 13251137 查看本文章

建造者模式原理图


代码

Computer类

package lad;
public class Computer {
	private String CPU;
    private String Storage;
    private String DisplayCard;
    private String Mainboard;
    private String Disc;
    private String DisplayDevice;
    private String Keyboard;
    private String Mouse;
    public String getCPU() {
        return CPU;
    }
    public void setCPU(String CPU) {
        this.CPU=CPU;
    }
    public String getStorage() {
        return Storage;
    }
    public void setStorage(String Storage) {
        this.Storage=Storage;
    }
    public String getDisplayCard() {
        return DisplayCard;
    }
    public void setDisplayCard(String DisplayCard) {
        this.DisplayCard=DisplayCard;
    }
    public String getMainboard() {
        return Mainboard;
    }
    public void setMainboard(String Mainboard) {
        this.Mainboard=Mainboard;
    }
    public String getDisc() {
        return Disc;
    }
    public void setDisc(String Disc) {
        this.Disc=Disc;
    }
    public String getDisplayDevice() {
        return DisplayDevice;
    }
    public void setDisplayDevice(String DisplayDevice) {
        this.DisplayDevice=DisplayDevice;
    }
    public String getKeyboard() {
        return Keyboard;
    }
    public void setKeyboard(String Keyboard) {
        this.Keyboard=Keyboard;
    }
    public String getMouse() {
        return Mouse;
    }
    public void setMouse(String Mouse) {
        this.Mouse=Mouse;
    }
    public String toString() {
        return "CPU:"+CPU+"\n内存条:"+Storage+"\n显卡:"+DisplayCard+
                "\n主板:"+Mainboard+"\n硬盘:"+Disc+"\n显示器:"+DisplayDevice+
                "\n键盘:"+Keyboard+"\n鼠标:"+Mouse;
    }
}	

ComputerBuilder类

package lad;
public abstract class ComputerBuilder {
    Computer computer=new Computer();
    public abstract void buildCPU();
    public abstract void buildStorage();
    public abstract void buildDisplayCard();
    public abstract void buildMainBoard();
    public abstract void buildDisc();
    public abstract void buildDisplayDevice();
    public abstract void buildKeyboard();
    public abstract void buildMouse();
    public Computer getComputer() {
        return computer;
    }
}

Designer类

package lad;
public class Designer {
    public ComputerBuilder com;
    public Designer(ComputerBuilder com) {
        this.com=com;
    }
    public Computer construct(){
        com.buildCPU();
        com.buildDisc();
        com.buildDisplayCard();
        com.buildDisplayDevice();
        com.buildKeyboard();
        com.buildMainBoard();
        com.buildMouse();
        com.buildStorage();
        return com.getComputer();
    }
}

DesignA类

package lad;
public class DesignA extends ComputerBuilder{
    @Override
    public void buildCPU() {
        // TODO Auto-generated method stub
        getComputer().setCPU("cpu1号");
    }
    @Override
    public void buildStorage() {
        // TODO Auto-generated method stub
        getComputer().setStorage("内存条1号");
    }
    @Override
    public void buildDisplayCard() {
        // TODO Auto-generated method stub
        getComputer().setDisplayCard("显卡1号");
    }
    @Override
    public void buildMainBoard() {
        // TODO Auto-generated method stub
        getComputer().setMainboard("主板1号");
    }
    @Override
    public void buildDisc() {
        // TODO Auto-generated method stub
        getComputer().setDisc("硬盘1号");
    }
    @Override
    public void buildDisplayDevice() {
        // TODO Auto-generated method stub
        getComputer().setDisplayDevice("显示器1号");
    }
    @Override
    public void buildKeyboard() {
        // TODO Auto-generated method stub
        getComputer().setKeyboard("键盘1号");
    }
    @Override
    public void buildMouse() {
        // TODO Auto-generated method stub
        getComputer().setMouse("鼠标");
    }
}

Test类

package lad;
public class Test {
    public static void main(String []args) {
        DesignA a=new DesignA();
        Designer designer = new Designer(a);
        Computer com=designer.construct();
        System.out.println("电脑的A组装方案:");
        System.out.print(com.toString());
    }
}

运行结果

猜你喜欢

转载自blog.csdn.net/Luoxiaobaia/article/details/120493474