理解名词
原型模式(Prototype Design Pattern)是一种创建型设计模式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。如果对象的创建成本比较大,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式,来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式,简称原型模式。
作用
通过拷贝原型实例创建新的对象,以减少创建对象的成本
适用场景
- 资源优化场景,类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等
- 性能和安全要求的场景。
- 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
- 一个对象多个修改者的场景,一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用。
实现方式
在 JAVA 中继承 Cloneable,重写 clone(),其中又分为两种实现方法,深拷贝和浅拷贝。
- 浅拷贝只会复制对象中基本数据类型数据和引用对象的内存地址,不会递归地复制引用对象
- 深拷贝得到的是一份完完全全独立的对象
业界经典实现
- JavaScript