原型模式是一种创建型设计模式,旨在通过复制现有对象(原型)来创建新对象。其核心优势在于无需直接依赖类的实例化,即可在运行时动态、高效地创建对象,尤其适用于对象创建成本高或需考虑生命周期的场景。
模式结构包括定义克隆接口的`原型(Prototype)`和实现具体克隆逻辑的`具体原型(ConcretePrototype)`。实现上主要涉及对象的两种拷贝方式:浅拷贝和深拷贝。
**浅拷贝**:创建新对象时,基本类型属性直接复制值,引用类型属性则复制引用地址。这意味着原对象与拷贝对象会共享引用类型数据,对其中一方的修改会影响另一方。实现方式包括通过构造函数赋值或实现`Cloneable`接口并调用`super.clone()`。
**深拷贝**:创建现有对象的完全独立副本,不仅复制基本类型值,还会为所有引用类型属性创建全新的对象副本,确保两者互不影响。其实现通常采用递归克隆(所有组合对象均需实现`Cloneable`并递归调用克隆方法)或通过对象的序列化与反序列化机制。