原型模式的核心思想:
不通过 new 来创建对象,而是通过"克隆"一个现有的对象(原型)来创建新对象。
它的主要目的是性能优化。
原型模式非常简单:
核心概念直白 :不通过
new创建对象,而是**"克隆"一个已存在的对象**作为副本。代码量极少 :核心就是实现一个
clone()方法(或自定义拷贝方法)。非常符合直觉:就像复印文件,不用重写内容,直接复印原件就行。
虽然基础用法简单,但有两类情况需要稍加注意:
浅拷贝 vs 深拷贝 :
super.clone()默认是浅拷贝(只复制基本类型和引用地址)。如果对象内部有可变对象(如List、Date),修改副本会影响原件,这时需要手动实现深拷贝(如序列化或递归复制)。必须实现 Cloneable 接口 :否则会抛出
CloneNotSupportedException。