设计模式 - 原型模式 笔记

原型模式的核心思想:

不通过 new 来创建对象,而是通过"克隆"一个现有的对象(原型)来创建新对象。

它的主要目的是性能优化。

原型模式非常简单:

  1. 核心概念直白 :不通过 new 创建对象,而是**"克隆"一个已存在的对象**作为副本。

  2. 代码量极少 :核心就是实现一个 clone() 方法(或自定义拷贝方法)。

  3. 非常符合直觉:就像复印文件,不用重写内容,直接复印原件就行。


虽然基础用法简单,但有两类情况需要稍加注意:

  • 浅拷贝 vs 深拷贝super.clone() 默认是浅拷贝(只复制基本类型和引用地址)。如果对象内部有可变对象(如 ListDate),修改副本会影响原件,这时需要手动实现深拷贝(如序列化或递归复制)。

  • 必须实现 Cloneable 接口 :否则会抛出 CloneNotSupportedException

相关推荐
Capricorn19887 小时前
知芽研究问题看板无法推进?从孵化区到笔记的机制排查指南
大数据·论文阅读·人工智能·笔记·学习方法·论文笔记
闪闪发亮的小星星7 小时前
相机脱靶量VS精跟踪精度
笔记
皖山文武8 小时前
逻辑代数基础学习笔记--概述
笔记·学习·机器学习
workflower9 小时前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造
ly768910 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
demodeom11 小时前
Win11 + RTX 5080 本地 Coding 模型测试笔记(已弃坑)
笔记
青山是哪个青山12 小时前
LangChain 学习笔记(五):Tools 工具调用
笔记·学习·langchain
peijiping12 小时前
Agent 工具执行:并行(parallel_tool_calls)和后台(run_in_background)到底有什么区别? (学习笔记)
笔记·学习·ai agent·claude code
Oll Correct12 小时前
Adobe illustrator 案例四:吃豆人 (Pac-Man)图标绘制
笔记·ui·adobe·illustrator
LuminousCPP12 小时前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表