9.16
实验5:建造者模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解建造者模式的动机,掌握该模式的结构;
2、能够利用建造者模式解决实际问题。
[实验任务一]:计算机组装
使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。
Builder.Java public abstract class Builder { Computer computer = new Computer(); abstract public void buildZhuJi(); abstract public void buildYinPan(); abstract public void buildCpu(); abstract public void buildNeiCun(); public Compture getCompture(){ return compture; } } Compture.java public class Compture { private String cpu; private String neiCun; private String yinPan; private String zhuJi; public String getZhuJi() { return zhuJi; } public void setZhuJi(String zhuJi) { this.zhuJi = zhuJi; } public String getYinPan() { return yinPan; } public void setYinPan(String yinPan) { this.yinPan = yinPan; } public String getNeiCun() { return neiCun; } public void setNeiCun(String neiCun) { this.neiCun = neiCun; } public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } } Factory.java public class Factory { private Builder comptureKind; public void setCompture(Builder kind) { this.comptureKind = kind; } public Compture construct(){ comptureKind.buildCpu(); comptureKind.buildYinPan(); comptureKind.buildZhuJi(); comptureKind.buildNeiCun(); return comptureKind.getCompture(); } } LapBuilder.java public class LapBuilder extends Builder{ @Override public void buildZhuJi() { compture.setZhuJi("LZJ"); } @Override public void buildYinPan() { compture.setYinPan("LYP"); } @Override public void buildCpu() { compture.setCpu("LC"); } @Override public void buildNeiCun() { compture.setNeiCun("LNC"); } } Store.java 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 TaiShiBuilder(); factory.setCompture(lap); factory.construct(); System.out.println(lap.getCompture().getCpu()); System.out.println(lap.getCompture().getNeiCun()); System.out.println(lap.getCompture().getYinPan()); System.out.println(lap.getCompture().getZhuJi()); } } } TaiShiBuilder.java public class TaiShiBuilder extends Builder{ @Override public void buildZhuJi() { compture.setZhuJi("TZJ"); } @Override public void buildYinPan() { compture.setYinPan("TYP"); } @Override public void buildCpu() { compture.setCpu("TC"); } @Override public void buildNeiCun() { compture.setNeiCun("TNC"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!