Skip to content

Latest commit

 

History

History

prototype

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

原型模式

定义

利用已有对象(原型)进行复制(拷贝)的方式来创建新对象,达到节省创建时间的目的。

使用场景

  1. 对象的创建成本比较大,但是同一类的不同对象之间差别不大。(大部分字段相同)
  2. 对象创建成本比较大。对象数据需要复杂的计算,排序hash等,需要从rpc、网络、数据库等非常慢的Io中获取。

实现方式

深拷贝

完全复制,复制出的对象和原本的对象没有关系。
实现方式:递归复制或者序列化与反序列化。

浅拷贝

仅复制对象的引用,不递归进行复制。
如果字段是一个地址,那么复制的对象将和源对象共享相同的数据。
如果字段对应的是一个可变对象,那么复制对象的改动会导致原有的对象的改动。
如果字段对应的是不可变对象,则没有什么问题。