「手写设计模式」原型模式

208 阅读1分钟

理解名词

原型模式(Prototype Design Pattern)是一种创建型设计模式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。如果对象的创建成本比较大,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式,来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式,简称原型模式。

作用

通过拷贝原型实例创建新的对象,以减少创建对象的成本

适用场景

  1. 资源优化场景,类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等
  2. 性能和安全要求的场景。
  3. 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
  4. 一个对象多个修改者的场景,一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用。

实现方式

在 JAVA 中继承 Cloneable,重写 clone(),其中又分为两种实现方法,深拷贝和浅拷贝。

  • 浅拷贝只会复制对象中基本数据类型数据和引用对象的内存地址,不会递归地复制引用对象
  • 深拷贝得到的是一份完完全全独立的对象

业界经典实现

  • JavaScript