概述
The prototype pattern helps if objects are expensive to create and new objects will be similar to existing objects.
如果创建一个对象代价高,并且新对象和存在的对象相似,那么原型模式会帮助到你。
原型模式是用来创建重复对象的,并且不影响性能。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。
作用
![](https://img.haomeiwen.com/i21501654/7feba11c3b47f723.png)
应用实例
![](https://img.haomeiwen.com/i21501654/edaddc2c985001a4.png)
要实现复制对象,应该在类上实现Cloneable接口。
![](https://img.haomeiwen.com/i21501654/fab980dc1da1e281.png)
我们使用ProtoTypeContext来存储实例对象和获取克隆对象。此类是便于方便理解所写。
![](https://img.haomeiwen.com/i21501654/3fcb2287782abf9f.png)
编写TestCloneShape,用于测试克隆
![](https://img.haomeiwen.com/i21501654/2da50904dd7d6c6d.png)
值得一提的是,使用clone()进行克隆,super.clone()是浅拷贝(Shallow Copy),也就是说基本数据类型、字符串类型的属性会进行值传递,引用传递数据类型的属性会进行引用传递。请移步浅拷贝和深拷贝(Shallow Copy and Deep Copy)了解详情。
网友评论