24.12.04
[实验任务一]:计算机组装
使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
实验要求:
- 画出对应的类图;
2.提交源代码;
package com.exam;
// 计算机类
class Computer {
private String cpu;
private String ram;
private String hdd;
private String caseType;
public Computer(String cpu, String ram, String hdd, String caseType) {
this.cpu = cpu;
this.ram = ram;
this.hdd = hdd;
this.caseType = caseType;
}
public String getDetails() {
return "CPU: " + cpu + ", RAM: " + ram + ", HDD: " + hdd + ", Case Type: " + caseType;
}
}
// 建造者接口
interface ComputerBuilder {
void setCPU(String cpu);
void setRAM(String ram);
void setHDD(String hdd);
void setCaseType(String type);
Computer build();
}
// 笔记本电脑建造者
class LaptopBuilder implements ComputerBuilder {
private String cpu;
private String ram;
private String hdd;
private String caseType;
public void setCPU(String cpu) {
this.cpu = cpu;
}
public void setRAM(String ram) {
this.ram = ram;
}
public void setHDD(String hdd) {
this.hdd = hdd;
}
public void setCaseType(String type) {
this.caseType = "Laptop";
}
public Computer build() {
return new Computer(cpu, ram, hdd, caseType);
}
}
// 台式电脑建造者
class DesktopBuilder implements ComputerBuilder {
private String cpu;
private String ram;
private String hdd;
private String caseType;
public void setCPU(String cpu) {
this.cpu = cpu;
}
public void setRAM(String ram) {
this.ram = ram;
}
public void setHDD(String hdd) {
this.hdd = hdd;
}
public void setCaseType(String type) {
this.caseType = "Desktop";
}
public Computer build() {
return new Computer(cpu, ram, hdd, caseType);
}
}
// 指导者类
class Director {
private ComputerBuilder builder;
public Director(ComputerBuilder builder) {
this.builder = builder;
}
public Computer constructComputer(String cpu, String ram, String hdd) {
builder.setCPU(cpu);
builder.setRAM(ram);
builder.setHDD(hdd);
builder.setCaseType(null); // caseType 在建造者中定义
return builder.build();
}
}
public class Main {
public static void main(String[] args) {
// 组装笔记本电脑
ComputerBuilder laptopBuilder = new LaptopBuilder();
Director laptopDirector = new Director(laptopBuilder);
Computer laptop = laptopDirector.constructComputer("Intel i5", "16GB", "512GB SSD");
System.out.println("笔记本电脑: " + laptop.getDetails());
// 组装台式电脑
ComputerBuilder desktopBuilder = new DesktopBuilder();
Director desktopDirector = new Director(desktopBuilder);
Computer desktop = desktopDirector.constructComputer("AMD Ryzen 7", "32GB", "1TB HDD");
System.out.println("台式电脑: " + desktop.getDetails());
}
}
3.注意编程规范。