11.14

news/2024/11/14 12:30:45/文章来源:https://www.cnblogs.com/wlxdaydayup/p/18543007

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

  1. 画出对应的类图;

  2. 提交源代码;

// Computer.java
package builder;public class Computer {private String cpu;        // CPUprivate 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 {@Overridepublic void buildCpu() {computer.setCpu("笔记本处理器:Intel Core i7 移动版");}@Overridepublic void buildMemory() {computer.setMemory("笔记本内存:16GB LPDDR4");}@Overridepublic void buildHardDisk() {computer.setHardDisk("笔记本硬盘:512GB NVMe固态硬盘");}@Overridepublic void buildCase() {computer.setCase("笔记本机箱:轻薄铝合金机身");}
}// DesktopBuilder.java
package builder;public class DesktopBuilder extends ComputerBuilder {@Overridepublic void buildCpu() {computer.setCpu("台式机处理器:Intel Core i9");}@Overridepublic void buildMemory() {computer.setMemory("台式机内存:32GB DDR4");}@Overridepublic void buildHardDisk() {computer.setHardDisk("台式机硬盘:2TB机械硬盘 + 1TB固态硬盘");}@Overridepublic 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.注意编程规范。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/832783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站安全狗修改远程端口,如何调整网站防火墙设置以增强安全性

网站安全狗是一款流行的网站防护软件,通过修改远程管理端口可以增加黑客攻击的难度。操作步骤如下:登录安全狗控制台:首先登录到安全狗的管理后台。 找到端口设置:在“设置”或“高级设置”中找到与远程管理相关的选项。 修改端口:选择一个不常用的端口号进行更改,并保存…

修改网站用户名,如何更改用户的登录名

修改网站用户名通常需要通过后台管理系统进行:登录管理后台:使用管理员账号登录网站管理后台。 进入用户管理:导航至“用户管理”或“会员管理”模块。 选择用户:找到需要修改的用户。 编辑用户名:在“用户名”或“登录名”字段中,输入新的用户名。 保存更改:确认无误后…

47DR工程 - 48DR工程

47DR工程 -> 48DR改变工程芯片型号 工程设置更新所有IP 使用Report IP更新用TCL命令更新所有IP upgrade_ip [get_ips]报警告,不影响正常功能: WARNING: [IP_Flow 19-2248] Failed to load user IP repository c:/Users/GAOCHEN/Desktop/ACTAN/rfsoc_project_6U/ip_repo/pl…

NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛20

前言rk 历程:\(11\to 9\to 8\to 7\),原因是部分人的 T1 假做法被卡(感觉目前这些不二分也不 DP(特指 Hangry 这样的 \(O(n^4)\) DP)都能卡)。 T2 建图建错了(没判谁是父亲也没建双向边)暴力死了,挂了 \(24\)。 我是唯一一个打了 T3 启发正解部分分但没有写出正解的人……

本人联系方式

点击直达 :https://t.me/ios888企鹅号码:616804217微信添加:616804217

ServiceMesh 4:实现流量染色和分级发布

★ ServiceMesh系列 1 什么是流量染色 在复杂的生产场景中,经常会有同一个服务中,存在多个版本长期共存的需求。为了让不同的用户在不一样的版本中使用,就需要对用户的请求进行采样和染色,打上不同的标识。 这样的目的有几个:支撑分级发布,避免全量发布时可能遇到的大规模…

SonicWall NSv 系列虚拟防火墙 SonicOSX 7.0 下载

SonicWall NSv 系列虚拟防火墙 SonicOSX 7.0 下载SonicWall NSv 系列虚拟防火墙 SonicOSX 7.0 SonicWall NSv SonicOSX 7.0 for ESXi 请访问原文链接:https://sysin.cn/blog/sonicwall-nsv/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org在获得物理防火墙所有安…

读数据质量管理:数据可靠性与数据质量问题解决之道02数据湖仓

数据湖仓1. 组装 1.1. 对于任何数据从业者来说,解决生产过程中的数据质量问题都是一项关键技能,但只要有适当的系统和流程,就基本可以防止数据宕机 1.2. 数据在管道的任何阶段都可能会受到操作数量、编程甚至数据相关性的影响,也许只需一次模式更改或代码推送,就会让下游报…

.NET 9正式发布,亮点是.NET Aspire和AI

Microsoft 今天正式发布了 .NET 9,这是迄今为止最高效、最现代、最安全、最智能、性能最高的 .NET 版本。这是来自世界各地的数千名开发人员又一年努力的结果。此新版本包括数千项性能、安全性和功能改进。您将发现整个 .NET 堆栈中从编程语言、开发人员工具和工作负载的全面增…

多校 A 层冲刺 NOIP2024 模拟赛 21

难度 ★★★☆☆多校A层冲刺NOIP2024模拟赛21 T1 送信卒 签到题 答案显然具有单调性,考虑二分答案,然后使用跑 dj check。 时间复杂度 \(O(nm\log (nm)\log (V))\) T2 共轭树图 特殊性质,树形 DP 考虑链怎么做,注意到一个性质,一条链上产生在 \(G\),将 \(G\) 中的边放到原…

APISR:受动漫制作启发的现实世界动漫超分辨率

APISR:受动漫制作启发的现实世界动漫超分辨率虽然现实世界的动漫超分辨率(SR)在SR社区越来越受到关注,但现有的方法仍然采用真实感领域的技术。分析了动漫制作工作,并重新思考了如何为了现实世界的动漫SR而使用它的特点。首先,由于手绘框架的重复使用,视频网络和数据集对…

2024.11.12 2024 CCPC女生专场

2024 CCPC女生专场 Solved:10/13 Penalty:1299 Rank:6今年题有这么简单吗?还是队伍变强了? 我做起来感觉比去年和前年都难。。感觉前两年至少都有 7~8 道签到,今年从 4~5 题就需要思考了。C. CCPC 题意:重排字符串使得形如 CCPC 的子串最多。 CCPCCP...CCPC #include<…