Prototype原型模式

java中的原型模式

  • 自带
  • 实现原型模式需要实现标记型接口Cloneable
  • 一般会重写clone()方法
    • 如果只是重写clone()方法,而没实现接口,调用时会报异常
  • 一般用于一个对象的属性已经确定,需要产生很多相同对象的时候
  • 需要区分深克隆与浅克隆

一个类型支持克隆,需要做到两步

  • 实现Cloneable接口(无具体的方法,标记型接口)
  • 重写clone方法(Object的clone方法为protected,需要改为public)
    Prototype原型模式

浅克隆

克隆只克隆了基础数据类型,引用数据类型指向的地址不变

深克隆

里面克隆的属性类也得再克隆一遍
String类型不需要进行深克隆,改变String的内容会自己指向新的地址