原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
不通过new的方式,而是通过一个方法去创建对象,保留原来的值不变。
适用场景:
1.new一个对象时需要非常繁琐的过程(字段多,构造方法复杂,数据准备)。
2.循环体内会产生大量对象,占用系统内存。
3. 类初始化消耗资源比较大。
代码示例:
使用浅克隆的方式实现
实体类:
测试类:
输出:
false 说明我的clone方法已经生效copy的对象是新的地址。
这时对新的对象添加新的爱好:
发现我的原型对象被破坏了,爱好里也有了QQ飞车 比较了hobby属性的地址后返回true。
说明浅拷贝只能拷贝值类型,对引用类型无效。
修改实体类里的clone() 对hobby属性进行拷贝
再次输出就实现了对整个User对象的的深拷贝。
姓名:阿张
年龄:18
爱好:[爱学Java, 爱学Python]
姓名:阿张
年龄:18
爱好:[爱学Java, 爱学Python, 爱玩QQ飞车]
false