Prototype原型模式
java中的原型模式
- 自带
- 实现原型模式需要实现标记型接口Cloneable
- 一般会重写clone()方法
- 如果只是重写clone()方法,而没实现接口,调用时会报异常
- 一般用于一个对象的属性已经确定,需要产生很多相同对象的时候
- 需要区分深克隆与浅克隆
一个类型支持克隆,需要做到两步
- 实现Cloneable接口(无具体的方法,标记型接口)
- 重写clone方法(Object的clone方法为protected,需要改为public)
浅克隆
克隆只克隆了基础数据类型,引用数据类型指向的地址不变
深克隆
里面克隆的属性类也得再克隆一遍
String类型不需要进行深克隆,改变String的内容会自己指向新的地址