教程中心 / Java教程 / 原型模式

原型模式

10分钟 设计模式

原型模式概述

原型模式(Prototype)通过复制已有对象创建新对象,避免重复创建开销。

Cloneable接口

 class Person implements Cloneable {
    private String name;

    @Override
    protected Person clone() {
        try {
            return (Person) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException(e);
        }
    }
} 

浅拷贝vs深拷贝

类型特点
浅拷贝引用类型复制地址
深拷贝引用类型递归复制

深拷贝实现

 @Override
protected Person clone() {
    Person p = (Person) super.clone();
    p.address = this.address.clone();
    return p;
} 

小结

  • 原型模式克隆对象而非new创建
  • 实现Cloneable接口
  • 浅拷贝只复制引用
  • 深拷贝递归复制所有引用
☕ Java 在线代码编辑器
📝 运行结果