10.31每日总结

实验5:建造者模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解建造者模式的动机,掌握该模式的结构;

2、能够利用建造者模式解决实际问题

 

[实验任务一]:计算机组装

使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

 

public abstract class Builder {
    Computer computer = new Computer();
    abstract public void buildHc();
    abstract public void buildDisk();
    abstract public void buildCpu();
    abstract public void buildStorage();
    public Compture getCompture(){
        return compture;
    }
}

public class Compture {
    private String cpu;
    private String Storage;
    private String Disk;
    private String Hci;
 
 
    public String Disk() {
        return Disk;
    }
 
    public void setDisk(String Disk) {
        this.Disk = Disk;
    }
 
    public String getStorage() {
        return Storage;
    }
 
    public void setStorage(String Storage) {
        this.Storage = Storage;
    }
 
    public String getHc() {
        Return Hc;
    }
 
    public void setHc(String Hc) {
        this.Hc = Hc;
    }
 
    public String getCpu() {
        return cpu;
    }
 
    public void setCpu(String cpu) {
        this.cpu = cpu;
    }
}


public class Factory {
    private Builder comptureKind;
 
    public void setCompture(Builder kind) {
        this.comptureKind = kind;
    }
    public Compture construct(){
        comptureKind.buildCpu();
        comptureKind.buildHc();
        comptureKind.buildDisk();
        comptureKind.buildStorage();
        return comptureKind.getCompture();
    }
}


public class LapBuilder extends Builder{
    @Override
    public void buildHc() {
        compture.setHc("LHc");
    }
 
    @Override
    public void buildDisk() {
        compture.setDisk("LDisk");
    }
 
    @Override
    public void buildCpu() {
        compture.setCpu("LC");
    }
 
    @Override
    public void buildStorage() {
        compture.setStorage("LS");
    }
}


public class Store {
    public static void main(String[] args) {
        Builder lap;
        Factory factory=new Factory();
        for (int i = 0; i < 2; i++) {
            if(i==1)
                lap = new LapBuilder();
            else
                lap=new Desktop();
            factory.setCompture(lap);
            factory.construct();
            System.out.println(lap.getCompture().getCpu());
            System.out.println(lap.getCompture().getStorage());
            System.out.println(lap.getCompture().getDisk());
            System.out.println(lap.getCompture().getHc());
        }
 
    }
}


public class Desktop extends Builder{
 
    @Override
    public void buildHc() {
        compture.setHc("THc");
    }
 
    @Override
    public void buildDisk() {
        compture.setDisk("TDisk");
    }
 
    @Override
    public void buildCpu() {
        compture.setCpu("TC");
    }
 
    @Override
    public void buildStorage() {
        compture.setStorage("TS");
    }
}

  

posted @ 2023-10-31 18:18  漏网鲨鱼  阅读(10)  评论(0)    收藏  举报