Java 建造者模式:轻松实现电脑组装工厂(含笔记本与台式机)
以下是一个使用 Java 实现的建造者模式来模拟电脑组装工厂的示例代码: ```java // 产品类:电脑 class Computer { private String cpu; private String motherboard; private String graphicsCard; private String display; public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getMotherboard() { return motherboard; } public void setMotherboard(String motherboard) { this.motherboard = motherboard; } public String getGraphicsCard() { return graphicsCard; } public void setGraphicsCard(String graphicsCard) { this.graphicsCard = graphicsCard; } public String getDisplay() { return display; } public void setDisplay(String display) { this.display = display; } @Override public String toString() { return "Computer{" + "cpu='" + cpu + '\'' + ", motherboard='" + motherboard + '\'' + ", graphicsCard='" + graphicsCard + '\'' + ", display='" + display + '\'' + '}'; } } // 抽象建造者 abstract class ComputerBuilder { protected Computer computer; public Computer getComputer() { return computer; } public abstract void buildCpu(); public abstract void buildMotherboard(); public abstract void buildGraphicsCard(); public abstract void buildDisplay(); } // 具体建造者 1:笔记本电脑建造者 class LaptopBuilder extends ComputerBuilder { public LaptopBuilder() { computer = new Computer(); } @Override public void buildCpu() { computer.setCpu("Laptop CPU"); } @Override public void buildMotherboard() { computer.setMotherboard("Laptop Motherboard"); } @Override public void buildGraphicsCard() { computer.setGraphicsCard("Laptop Graphics Card"); } @Override public void buildDisplay() { computer.setDisplay("Laptop Display"); } } // 具体建造者 2:台式电脑建造者 class DesktopBuilder extends ComputerBuilder { public DesktopBuilder() { computer = new Computer(); } @Override public void buildCpu() { computer.setCpu("Desktop CPU"); } @Override public void buildMotherboard() { computer.setMotherboard("Desktop Motherboard"); } @Override public void buildGraphicsCard() { computer.setGraphicsCard("Desktop Graphics Card"); } @Override public void buildDisplay() { computer.setDisplay("Desktop Display"); } } // 指挥者 class Director { public void construct(ComputerBuilder builder) { builder.buildCpu(); builder.buildMotherboard(); builder.buildGraphicsCard(); builder.buildDisplay(); } } public class ComputerAssembly { public static void main(String[] args) { // 笔记本电脑组装 LaptopBuilder laptopBuilder = new LaptopBuilder(); Director director = new Director(); director.construct(laptopBuilder); Computer laptop = laptopBuilder.getComputer(); System.out.println("Laptop: " + laptop); // 台式电脑组装 DesktopBuilder desktopBuilder = new DesktopBuilder(); director.construct(desktopBuilder); Computer desktop = desktopBuilder.getComputer(); System.out.println("Desktop: " + desktop); } } ``` 在上述代码中,我们定义了`Computer`类表示电脑产品,`ComputerBuilder`抽象类作为建造者的抽象,`LaptopBuilder`和`DesktopBuilder`作为具体的建造者,`Director`类负责指挥建造过程。在`main`方法中分别组装了笔记本电脑和台式电脑并输出其信息。 ######[AI写代码神器 | 909点数解答 | 2024-10-31 16:21:50]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)407
- 学号_京东笔记本数据分析:爬取、存储与可视化全流程揭秘(阿里通义 | 968点数解答 | 2024-12-12 00:20:07)206
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)308
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1139
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)344
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)312
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)320
- Java 继承实现:重温经典剪刀石头布游戏(字节豆包 | 451点数解答 | 2024-10-20 19:57:58)463
- Java实现日期递增:无数据返20250901,遇20250901返20250902及开发注意要点 (DeepSeek | 242点数解答 | 2025-09-02 11:39:53)83
- 深度解析:Vue中MVVM模式的组成、原理与双向数据绑定优势 (阿里通义 | 249点数解答 | 2023-11-09 00:56:24)264
- Android开发:Kotlin实现Builder模式示例及优势解析(百度文心 | 456点数解答 | 2023-11-09 17:29:15)252
- 工程师必知:PO模式与Page Factory的深度解析(百度文心 | 132点数解答 | 2023-11-09 18:33:18)287