原型模式Prototype:
Object.clone();就是原型模式。
java中的原型模式:
实现原型模式需要实现标记型接口(这个借口没有任何方法)Cloneable
一般会重写clone()方法
如果只是重写clone()方法,而没有实现接口,调用时会报异常
一般用于一个对象的属性已经确定,需要产生很多相同对象的时候,需要区分深克隆和浅克隆。
object的clone方法是浅克隆,只是克隆当前对象,对于当前对象的字段不会克隆 ,而是引用,也就是说,克隆出来的对象和原来对象的字段其实使用的是同一个内存地址的内容,如果这个内容改变了,那么克隆出来的对象和原来对象的该字段,都会发生变化。
String不需要进行深克隆,因为String有常量池。