原型设计模式(Prototype Design Pattern)

86 阅读1分钟

参考资料

image.png

应用场景

  • BeanUtils
  • 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同)
  • 原型模式允许一个对象再创建另外一个可定制的而对象,无需知道任何创建细节

原型模式的实现方式

浅拷贝

针对于不可变的对象

  • 实现Cloneable接口
  • 调用super.clone();

深拷贝

针对于可变的对象

  • 实现Cloneable接口
  • 调用super.clone();
  • 在调用clone();的下一句,使用set赋值

没有充分的理由,不要为了一点点的性能提升而使用浅拷贝。

clone只是java提供的机制,不建议使用。