设计模式 - 原型模式 笔记

原型模式的核心思想:

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

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

原型模式非常简单:

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

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

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


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

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

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

相关推荐
闪闪发亮的小星星1 分钟前
STK-03-通信卫星方向最常遇到的场景
笔记
.千余10 分钟前
【C++】C++继承入门(上):继承语法与基本特性详解
开发语言·c++·笔记·学习·其他
问心无愧051310 分钟前
ctf show web入门159
前端·笔记
阿坤带你走近大数据21 分钟前
分别介绍下java主流的开发框架、设计模式与对应编程语言的高级特性
java·开发语言·设计模式
NULL指向我39 分钟前
TMS320F28379D笔记4:CAN通信的收发配置
笔记
疯狂打码的少年39 分钟前
【程序语言与编译】文法的分类(0-3型,乔姆斯基体系)
人工智能·笔记·分类·数据挖掘
AOwhisky1 小时前
Redis 学习笔记(第二期):核心数据类型与消息队列实战
运维·数据库·redis·笔记·学习·云计算
geovindu1 小时前
go: Coroutines Pattern
开发语言·后端·设计模式·golang·协程模式
江屿风1 小时前
C++图论基础拓扑排序算法流食般投喂
开发语言·c++·笔记·算法·排序算法
OSwich1 小时前
【UE5学习笔记】UMG中控件命名规范
笔记·学习·ue5