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

23种设计模式-创建型模式之原型模式(Java版本)

Java 原型模式(Prototype Pattern)详解

🧬 什么是原型模式?

原型模式用于通过复制已有对象的方式创建新对象,而不是通过 new 关键字重新创建。

核心是:通过克隆(clone)已有对象,以便快速创建多个相似对象。


🧠 使用场景

  • 创建对象成本较高(如数据库连接、大对象)
  • 想避免重复初始化
  • 希望对象可以被“快速复制”

🏗️ 模式结构

  • Prototype(原型接口)
  • ConcretePrototype(具体原型)
  • Client(客户端)

✅ 示例:克隆简历

原型接口

public interface Prototype extends Cloneable {Prototype clone();
}

具体原型类

    private String name;private String gender;private String experience;public Resume(String name, String gender, String experience) {this.name = name;this.gender = gender;this.experience = experience;}public void setExperience(String experience) {this.experience = experience;}@Overridepublic Prototype clone() {try {return (Prototype) super.clone();} catch (CloneNotSupportedException e) {throw new RuntimeException("Clone failed", e);}}@Overridepublic String toString() {return "Resume [name=" + name + ", gender=" + gender + ", experience=" + experience + "]";}
}

客户端调用

    public static void main(String[] args) {Resume resume1 = new Resume("Alice", "Female", "3 years at Google");Resume resume2 = (Resume) resume1.clone();resume2.setExperience("5 years at Amazon");System.out.println(resume1);System.out.println(resume2);}
} 

🔍 深拷贝 vs 浅拷贝

  • 浅拷贝:拷贝对象本身,引用类型仍指向同一内存
  • 深拷贝:连引用对象也一并复制,互不影响

🧩 优点

  • 避免重复初始化,提升性能

  • 简化对象创建过程

  • 可动态添加新对象,不需依赖类结构

⚠️ 缺点

  • 深拷贝实现复杂

  • 涉及对象引用时需小心内存问题

  • clone 方法较隐蔽,不如构造器直观

✅ 使用建议

  • 当需要频繁创建结构相似对象,或者对象构建代价大时(如图形编辑器中的图形、工作流节点等),原型模式是高效之选

相关文章:

  • [Java EE] Spring 配置 和 日志
  • 嵌入式面试题解析:常见基础知识点详解
  • spring Ai---向量知识库(一)
  • [Java · 初窥门径] Java API 文档使用说明
  • 青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
  • 【家政平台开发(60)】数据驱动:数据分析与应用深度解析
  • 边生成边训练:构建合成数据驱动的在线训练系统设计实战
  • Cache优化原则
  • MCP协议用到的Node.js 和 npm npx
  • 【SAP ME 45】并发SFC拆分导致 SFC_STEP中的QTY_IN_QUEUE与SFC表中的QTY不一致
  • 【Flutter动画深度解析】性能与美学的完美平衡之道
  • PrintWriter 类详解
  • Python:使用web框架Flask搭建网站
  • php实现zip压缩
  • 作业2 CNN实现手写数字识别
  • C++入门小馆: 深入string类
  • 藏品馆管理系统
  • Spring Boot 中基于 Reactor 的服务器端事件(SSE)推送机制实践
  • Linux系统:详解进程等待wait与waitpid解决僵尸进程
  • TensorFlow 实现 Mixture Density Network (MDN) 的完整说明
  • 几百元的工资优势已不能吸引人才流动,江苏多地探讨“抢人”高招
  • 什么是中国好手艺?材美、工巧、器韵、时宜
  • 长三角议事厅·周报|服务业扩大开放:长三角六城联动新探索
  • 美国同日曝两起泄密事件:防长群聊向家人分享作战计划,白宫平面图被“共享”
  • 田野调查|“心青年”的日常秩序与归属之地
  • 体坛联播|皇马补时绝杀毕尔巴鄂,利物浦最快下轮即可夺冠