实验5:建造者模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解建造者模式的动机,掌握该模式的结构;
2、能够利用建造者模式解决实际问题。
[实验任务一]:计算机组装
使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
实验要求:
1. 画出对应的类图;
2.提交源代码;
3.注意编程规范。
package ruanjiansheji.shiyan5; public class Computer { private String CPU; private String RAM; private String Hard; private String Host; public String getCPU() { return CPU; } public void setCPU(String CPU) { this.CPU = CPU; } public String getRAM() { return RAM; } public void setRAM(String RAM) { this.RAM = RAM; } public String getHard() { return Hard; } public void setHard(String hard) { Hard = hard; } public String getHost() { return Host; } public void setHost(String host) { Host = host; } @Override public String toString() { return "Computer{" + "CPU='" + CPU + '\'' + ", RAM='" + RAM + '\'' + ", Hard='" + Hard + '\'' + ", Host='" + Host + '\'' + '}'; } } package ruanjiansheji.shiyan5; public abstract class ComputerBuilder { protected Computer computer=new Computer(); public abstract void buildCPU(); public abstract void buildRAM(); public abstract void buildHard(); public abstract void buildHost(); public Computer getComputer() { return computer; } } package ruanjiansheji.shiyan5; public class DesktopComputer extends ComputerBuilder{ public void buildCPU() { computer.setCPU("台式机CPU"); } public void buildRAM() { computer.setRAM("台式机内存"); } public void buildHard() { computer.setHard("台式机硬盘"); } public void buildHost() { computer.setHost("台式机主机"); } } package ruanjiansheji.shiyan5; public class Director { private ComputerBuilder computerBuilder; public void setComputerBuilder(ComputerBuilder c){ computerBuilder=c; } public Computer construct(){ computerBuilder.buildCPU(); computerBuilder.buildRAM(); computerBuilder.buildHard(); computerBuilder.buildHost(); return computerBuilder.getComputer(); } } package ruanjiansheji.shiyan5; public class LaptopComputer extends ComputerBuilder{ public void buildCPU() { computer.setCPU("笔记本CPU"); } public void buildRAM() { computer.setRAM("笔记本内存"); } public void buildHard() { computer.setHard("笔记本硬盘"); } public void buildHost() { computer.setHost("笔记本主机"); } } package ruanjiansheji.shiyan5; public class main { public static void main(String[] args) { Director director=new Director(); ComputerBuilder cb; System.out.println("安装笔记本"); cb=new LaptopComputer(); director.setComputerBuilder(cb); Computer Laptop = director.construct(); System.out.println(Laptop.toString()); System.out.println("安装台式机"); cb=new DesktopComputer(); director.setComputerBuilder(cb); Computer Desktop = director.construct(); System.out.println(Desktop.toString()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!