原型模式 (设计模式)
对于熟悉JavaScript 语言的前端程序员来说,原型模式是一种比较常用的开发模式,即使JavaScript 引入了类的概念,但它也知识基于原型语法糖而已。 不过如果你使用的是java C ++ 你就很少使用原型模式。
原型模式的原理和应用:
如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段相同)在这种情况下可以使用原型模式。
为和对象的创建成本比较大?
实际上对象的创建包含内存申请,给成员变量的赋值,本身不会花费它多的时间。 或者对于大多数业务来说,这点时间是可以完全忽略的,应用一个复杂的模型,只得到了一点点性能的提升,这就是所谓的过度设计。
但是如果对象中的数据是经过复杂的计算等到的,比如排序,计算哈希值。或者需要从rpc 网络,数据库,文件等非常慢的IO 中读取,这种情况下,我们就可以利用原型模式,从其他已有对象之际拷贝得到。 而不是创建对象的时候,都重复的执行这些复杂的操作。
深拷贝,浅拷贝,
深拷贝的两种实现方式,1, 递归,2. 序列换反序列化