前期分享过几篇关于设计模式的文章,今天继续分享设计模式——原型模式
-
我们将会使用原型实例指定创建对象的种类,并且通过深拷贝这些原型创建新的对象。
-
原型模式本质就是克隆对象,所以在对象初始化操作比较复杂的情况下,很实用,能大大降低耗时,提高性能。
-
在原型模式下我们不用重新初始化对象,而是动态地获得对象运行时的状态。
深浅拷贝的含义
浅拷贝(Shallow Copy):指对象的字段被拷贝,而字段引用的对象不会被拷贝,拷贝的对象和源对象只是名称相同,但是他们共用一个实体。
浅拷贝会拷贝对象内容及其内容的引用或者子对象的引用,但不会拷贝引用的内容和子对象本身。
深拷贝(deep copy):对对象实例中字段引用的对象也进行拷贝。深拷贝不仅拷贝了对象和内容的引用,也会拷贝引用的内容。所以,一般深拷贝比浅拷贝复制得更加完全,但也更占资源(包括时间和空间资源)。
使用场景
当我们有一个迭代项目要更新时,第二个版本中的对象实例要在第一个版本的基础上做一些修改时,这个时候我们就可以使用原型模式来实现,从而大大节省了时间,提高了效率。
优点
原型模式用于创建复杂的或者耗时的实例:复制一个已经存在的实例使程序运行更高效