原型模式

简介

定义:这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。

使用场景:

  • 对象创建成本高

  • 需要大量相似对象

  • 避免构造函数

实现要点:

  • 实现Cloneable接口

  • 重写clone()方法

  • 浅拷贝 vs 深拷贝

代码示例

  1. 开启原型模式

@Data
public class UserPrototype implements Cloneable {
    private Integer id;
    private String name;
    private String desc;

    public UserPrototype() {
        System.out.println("创建对象成功...");
    }

    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
  1. 使用方式

Last updated