11.14
[实验任务一]:计算机组装
使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
实验要求:
-
画出对应的类图;
-
提交源代码;
// Computer.java
package builder;
public class Computer {
private String cpu; // CPU
private String memory; // 内存
private String hardDisk; // 硬盘
private String computerCase; // 机箱
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 setCase(String computerCase) {
this.computerCase = computerCase;
}
public void display() {
System.out.println("电脑配置信息:");
System.out.println("处理器: " + cpu);
System.out.println("内存: " + memory);
System.out.println("硬盘: " + hardDisk);
System.out.println("机箱: " + computerCase);
}
}
// ComputerBuilder.java
package builder;
public abstract class ComputerBuilder {
protected Computer computer = new Computer();
public abstract void buildCpu();
public abstract void buildMemory();
public abstract void buildHardDisk();
public abstract void buildCase();
public Computer getResult() {
return computer;
}
}
// LaptopBuilder.java
package builder;
public class LaptopBuilder extends ComputerBuilder {
@Override
public void buildCpu() {
computer.setCpu("笔记本处理器:Intel Core i7 移动版");
}
@Override
public void buildMemory() {
computer.setMemory("笔记本内存:16GB LPDDR4");
}
@Override
public void buildHardDisk() {
computer.setHardDisk("笔记本硬盘:512GB NVMe固态硬盘");
}
@Override
public void buildCase() {
computer.setCase("笔记本机箱:轻薄铝合金机身");
}
}
// DesktopBuilder.java
package builder;
public class DesktopBuilder extends ComputerBuilder {
@Override
public void buildCpu() {
computer.setCpu("台式机处理器:Intel Core i9");
}
@Override
public void buildMemory() {
computer.setMemory("台式机内存:32GB DDR4");
}
@Override
public void buildHardDisk() {
computer.setHardDisk("台式机硬盘:2TB机械硬盘 + 1TB固态硬盘");
}
@Override
public void buildCase() {
computer.setCase("台式机机箱:ATX立式机箱");
}
}
// Director.java
package builder;
public class Director {
private ComputerBuilder builder;
public void setBuilder(ComputerBuilder builder) {
this.builder = builder;
}
public Computer construct() {
builder.buildCpu();
builder.buildMemory();
builder.buildHardDisk();
builder.buildCase();
return builder.getResult();
}
}
// Main.java
package builder;
public class Main {
public static void main(String[] args) {
Director director = new Director();
// 构建笔记本电脑
LaptopBuilder laptopBuilder = new LaptopBuilder();
director.setBuilder(laptopBuilder);
Computer laptop = director.construct();
System.out.println("=== 笔记本电脑配置 ===");
laptop.display();
System.out.println("\n");
// 构建台式机
DesktopBuilder desktopBuilder = new DesktopBuilder();
director.setBuilder(desktopBuilder);
Computer desktop = director.construct();
System.out.println("=== 台式机配置 ===");
desktop.display();
}
}
3.注意编程规范。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步