利用已有对象(原型)进行复制(拷贝)的方式来创建新对象,达到节省创建时间的目的。
- 对象的创建成本比较大,但是同一类的不同对象之间差别不大。(大部分字段相同)
- 对象创建成本比较大。对象数据需要复杂的计算,排序hash等,需要从rpc、网络、数据库等非常慢的Io中获取。
完全复制,复制出的对象和原本的对象没有关系。
实现方式:递归复制或者序列化与反序列化。
仅复制对象的引用,不递归进行复制。
如果字段是一个地址,那么复制的对象将和源对象共享相同的数据。
如果字段对应的是一个可变对象,那么复制对象的改动会导致原有的对象的改动。
如果字段对应的是不可变对象,则没有什么问题。