24.12.04

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

  1. 画出对应的类图;
    image

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.注意编程规范。

posted @ 2024-12-05 17:16  起名字真难_qmz  阅读(5)  评论(0)    收藏  举报