1、简介
(1)意图
根据原型实例创造出一个新的实例,并且新实例的状态与原型实例保持相同。
(2)说明
a.适用于不需要知道实例的具体类型,以及需要复制某种特定状态下的实例时,另一说法是在java中不需要从头构造,提升了速度。
b.需要注意深拷贝or浅拷贝问题
2、实例
@Override
public RoundRectShape clone() throws CloneNotSupportedException {
RoundRectShape shape = (RoundRectShape) super.clone();
shape.mOuterRadii = mOuterRadii != null ? mOuterRadii.clone() : null;
shape.mInnerRadii = mInnerRadii != null ? mInnerRadii.clone() : null;
shape.mInset = new RectF(mInset);
shape.mInnerRect = new RectF(mInnerRect);
shape.mPath = new Path(mPath);
return shape;
}
主要是在java语言中见到,在C++中暂时没有看到