首页 原型模式
文章
取消

原型模式

什么是原型模式

如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。

为什么要使用原型模式

耗时操作有哪些:

  1. 如果用 new 创建就会触发类加载,对象实例化,初始化等操作,效率远低于拷贝,例如数据初始化需通过排序、计算哈希值这些步骤
  2. 数据需经过慢速的 IO 操作获取(RPC、网络、数据库和文件系统)

这种情况下往往可以复用旧的数据,采用原型模式更新数据,而原型模式就是基于 Clone

数据一致性

常见的数据一致性问题,如: Redis 与数据库,ES 与数据库,内存与数据库,分布式一致性等

在 Java 中如何设计原型模式

  1. 对象应该实现Cloneable接口
  2. 首先得有原型对象,才能实现拷贝

基于浅拷贝 or 基于深拷贝的原型模式

浅拷贝:只复制对象引用,or 基本数据类型;深拷贝:复制基本数据类型,同时复制对象的数据创建新的对象

如何实现深拷贝

  1. 递归拷贝对象
  2. 先将对象序列化,然后再反序列化成新的对象
本文由作者按照 CC BY 4.0 进行授权

单例模式

工厂模式