当前位置: 首页 > news >正文

Java 中建造者模式,请用代码具体举例

建造者模式是一种创建型设计模式,它允许你创建一个复杂对象的不同部分并将它们组装在一起,以产生最终的对象。以下是一个简单的 Java 示例,演示了建造者模式的用法:


// 产品类
class Computer {private String cpu;private String ram;private String storage;private String gpu;public void setCpu(String cpu) {this.cpu = cpu;}public void setRam(String ram) {this.ram = ram;}public void setStorage(String storage) {this.storage = storage;}public void setGpu(String gpu) {this.gpu = gpu;}@Overridepublic String toString() {return "Computer{" +"cpu='" + cpu + '\'' +", ram='" + ram + '\'' +", storage='" + storage + '\'' +", gpu='" + gpu + '\'' +'}';}
}// 抽象建造者
interface ComputerBuilder {void buildCPU();void buildRAM();void buildStorage();void buildGPU();Computer getComputer();
}// 具体建造者
class HighEndComputerBuilder implements ComputerBuilder {private Computer computer;public HighEndComputerBuilder() {computer = new Computer();}public void buildCPU() {computer.setCpu("Intel Core i9");}public void buildRAM() {computer.setRam("32GB DDR4");}public void buildStorage() {computer.setStorage("1TB SSD");}public void buildGPU() {computer.setGpu("NVIDIA GeForce RTX 3080");}public Computer getComputer() {return computer;}
}// 指挥者
class Director {private ComputerBuilder computerBuilder;public void setComputerBuilder(ComputerBuilder computerBuilder) {this.computerBuilder = computerBuilder;}public Computer buildComputer() {computerBuilder.buildCPU();computerBuilder.buildRAM();computerBuilder.buildStorage();computerBuilder.buildGPU();return computerBuilder.getComputer();}
}// 示例
public class Main {public static void main(String[] args) {Director director = new Director();ComputerBuilder highEndBuilder = new HighEndComputerBuilder();director.setComputerBuilder(highEndBuilder);Computer highEndComputer = director.buildComputer();System.out.println("High-end Computer:");System.out.println(highEndComputer);}
}

在这个例子中,Computer 类是产品类,它具有一些属性如 CPU、RAM、存储和 GPU。ComputerBuilder 接口定义了建造者的方法,包括构建 CPU、RAM、存储和 GPU。HighEndComputerBuilder 类是一个具体的建造者,负责构建高端计算机的各个部件。Director 类负责指挥建造者构建计算机,它可以接受不同的建造者来构建不同配置的计算机。
在 Main 类中,我们创建了一个指挥者和一个高端计算机的建造者,并指定给指挥者。然后指挥者使用建造者构建高端计算机,最终得到一个完整的高端计算机对象。

http://www.lryc.cn/news/340257.html

相关文章:

  • Tomcat 启动闪退问题解决方法
  • 使用docker部署数据可视化平台Metabase
  • 数图智慧零售解决方案,赋能零售行业空间资源价值最大化
  • Django中的实时通信:WebSockets与异步视图的结合【第167篇—实时通信】
  • R 格式(蓝桥杯)
  • Intellij idea的快速配置详细使用
  • JavaEE:JVM
  • Linux基础|线程池Part.1|线程池的定义和运行逻辑
  • 蓝队面试经验总结
  • MySQL命令分类与大纲
  • windows编译xlnt,获取Excel表里的数据
  • c#字段和属性的区别
  • 微软正式发布Copilot for Security
  • AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路
  • OpenCV轻松入门(八)——图片卷积
  • 鸿蒙HarmonyOS开发规范-完善中
  • 神经网络压缩图像
  • Catagory(rt)
  • Games104 现代游戏引擎3
  • 【云计算】混合云分类
  • 探索分布式系统监控zabbix------------自动发现与自动注册
  • 权限管理Ranger详解
  • WPF Extended.Wpf.Toolkit 加载界面
  • 【切换网络连接后】VMware虚拟机网络配置【局域网通信】
  • 革新鞋服零售:数据驱动的智能商品管理 解锁库存优化与高效增长
  • word文件的创建时间和修改时间可以更改吗?答案是肯定的 文件属性修改的方法
  • redisson -- 延迟队列RDelayedQueue
  • Flex弹性盒子布局案例(认识弹性布局)
  • 【ros2】ros1和ros2可以同时在一台机器上运行吗
  • PMSM MATLAB