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

java 设计模式 原型模式

简介

原型模式(Prototype Pattern) 是一种创建型设计模式,它通过复制现有对象生成新对象,而不是通过 new 关键字创建。核心思想是减少对象创建的开销,尤其是当对象初始化过程复杂或代价较高时。

原型模式的核心实现

1.实现 Cloneable 接口
Java 的 Object 类提供了 clone() 方法,但需要类实现 Cloneable 接口(标记接口)才能调用。

2.重写 clone() 方法
通常重写 clone() 方法以实现对象的深拷贝或浅拷贝。

默认浅拷贝

class Prototype implements Cloneable {private String name;private List<String> data;public Prototype(String name, List<String> data) {this.name = name;this.data = data;}// 深拷贝实现@Overrideprotected Prototype clone() {try {Prototype cloned = (Prototype) super.clone(); //这里只实现基础数据类型的拷贝,对于对象是没有进行深拷贝的cloned.data = new ArrayList<>(this.data); // 深拷贝引用对象 手动深拷贝return cloned;} catch (CloneNotSupportedException e) {throw new AssertionError();}}
}

使用场景

对象创建成本高

当对象初始化需要大量资源(如数据库连接、复杂计算)时,直接复制现有对象更高效。

例如:数据库配置对象、复杂的游戏角色对象。

避免重复初始化

当新对象与原对象差异较小时,直接克隆比重新构造更便捷。

例如:修改已有对象的少数属性生成新对象。

动态运行时对象生成

在运行时动态生成对象,无需依赖具体类。

例如:通过克隆预定义原型(如工具条按钮)生成新组件。

保护性拷贝

防止外部代码修改对象内部状态,返回对象的拷贝而非原始对象。

例如:不可变对象的防御性复制。

原型模式的优缺点

优点

减少对象创建开销,提升性能。

简化复杂对象的创建过程。

动态扩展对象行为(通过组合原型)。

缺点

深拷贝需手动处理引用对象(如集合、嵌套对象)。

每个类需实现 clone() 方法,增加代码复杂度。

总结

实际原型模式就是在我们需要创建大量对象的时候,为了节省重复创建对象时候的开销,所以用到了原型模式,他能帮我们快速,高效的创建重复对象

相关文章:

  • 【安装neo4j-5.26.5社区版 完整过程】
  • Linux系统用户迁移到其它盘方法
  • “融合Python与机器学习的多光谱遥感技术:数据处理、智能分类及跨领域应用”​
  • 在Windows上安装Git
  • AiEditor v1.3.8 发布
  • LeetCode---整数反转
  • 每日算法-250422
  • JavaFX实战:从零到一实现一个功能丰富的“高级反应速度测试”游戏
  • IO流详解
  • 【MCP Node.js SDK 全栈进阶指南】中级篇(3):MCP高级资源设计
  • API路由大法:统一前缀,化繁为简
  • C# MP3 伴奏
  • 仓储物流管理系统开发:提升企业供应链效率的关键技术
  • 为啥低速MCU单板辐射测试会有200M-1Ghz的辐射信号
  • 【教程】ESP32制作为ISP烧录器
  • 三网通电玩城平台系统结构与源码工程详解(一):系统概述与前端搭建
  • 如何精准查询住宅IP?工具、方法与注意事项
  • 凤凰架构-笔记
  • 精益数据分析(13/126):洞察数据关系,灵活调整创业方向
  • 近几年字节测开部分面试题整理
  • 官宣一起打造智能汽车品牌后,华为喊话上汽要准备好足够产能
  • 北京市交通委通报顺平路潮白河大桥事故直接原因
  • 从“龙队”到“龙副”,国乒这批退役球员为何不爱当教练了
  • 阻燃材料点火就着引发一场火灾,河北一企业的产品被指不达标且涉嫌欺诈
  • 中国和阿塞拜疆签署互免签证协定
  • 从 “负分” 到世界杯亚军,蒯曼专打“逆风局”