原型模式与对象的拷贝

原型模式其实就是实现对象的拷贝。但是对象的拷贝分为深拷贝和浅拷贝。spa

任何对象都有从Object继承过来的clone方法,默认是浅拷贝的,即拷贝时只会复制基本数据类型(包括字符串String),而且要注意拷贝的时候是不会调用构造方法的。而引用类型只是复制了引用,所以拷贝出来的对象和原来对象有着一样的引用属性,这样在某种环境下会出问题。 对于私有属性,应该是只属于该对象的,和其余对象无关,而浅拷贝以后两个对象有着同一个引用的私有属性,那么这个私有的意义何在?对象

 所以,在重写父类的 clone方法时要注意同时把引用属性也从新复制一份,赋给拷贝后的对象。继承

相关文章
相关标签/搜索