原型模式:为了解决构建复杂对象的资源消耗问题,在某些场景下提升创建对象的效率.
主要分为深拷贝和浅拷贝
@Override
protected WordDocument clone() {
try {
WordDocument wDoc = (WordDocument) super.clone();
wDoc.mText = this.mText;
//浅拷贝
wDoc.mImages = this.mImages;
//深拷贝
wDoc.mImages = (ArrayList<String>)this.mImages.clone();
return wDoc;
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return null;
}
浅拷贝: 更改clone原内部对象引用会改变原对象的实际值,而深拷贝则是对于原内部对象进行进一步的clone,保证不影响原内部对象
优点:节省资源提高效率
缺点:clone的对象不会执行构造方法