参考资料
应用场景
- BeanUtils
- 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同)
- 原型模式允许一个对象再创建另外一个可定制的而对象,无需知道任何创建细节
原型模式的实现方式
浅拷贝
针对于不可变的对象
- 实现Cloneable接口
- 调用super.clone();
深拷贝
针对于可变的对象
- 实现Cloneable接口
- 调用super.clone();
- 在调用clone();的下一句,使用set赋值
没有充分的理由,不要为了一点点的性能提升而使用浅拷贝。
clone只是java提供的机制,不建议使用。