学习设计模式-创建型-原型模式

236 阅读1分钟

原型模式

如果创建对象的成本比较大,而同一个类不同对象间差别不大(大部分字段相同),在这种情况下,我们可以利用已有对象(原型)进行复制的方式进行创建新对象,以达到减少创建时间目的。

何时使用

其实创建对象本身并不会浪费大量时间,但是如果对象需要经过复杂的计算才能得到,或者是需要从RPC、数据库、数据库、文件系统等非常慢的IO中读取,这种情况下我们就可利用原型模式,从其他已有对象中直接拷贝得到。

实现

原型模式有两种实现方式:深拷贝、浅拷贝。浅拷贝不可变对象是没有问题,但对于可变对象来说,浅拷贝得到对象会和原来对象共享部分数据,就可能出现数据被修改风险。