原型模式
介绍
原型模式属于五种创建模式中的一种。是用于创建重复的对象,同时又能保证性能的方式。该模式用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
结构
优点
- 使用原型模式创建对象比直接new一个对象性能上优异一些。因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流。
- 简化对象的创建,在原型模式中,创建对象变得简单许多。
缺点
- 每一个类都配置一个 clone 方法。
- 当类已存在后难以新增clone操作,当内部包括一些不支持拷贝或有循环引用的对象时,实现clone也变得困难。
拷贝
- 浅拷贝:创建一个新对象,基本数据类型变量全部重新创建,而引用仍指向原对象。
- 深拷贝:创建一个新对象,引用不再指向原对象。
使用场景
- 使用同一个类的大量对象。
- 初始化一个涉及复杂数据对象。
- 对对象的大量信息中的少量字段进行个性化设置
代码举例
public class ProtoTypeCitation {
public static void main(String[] args) throws CloneNotSupportedException