定义
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
特点
原型的是一种创建型的设计模式,主用来创建的复杂的对象和构建耗时的实例。通过克隆已有的对象来创建的新的对象,从而节省时间和内存。
角色
抽象类或接口,声明具备clone的能力
具体的原型类
实现的要点
实现Cloneable接口
覆写Object的clone方法
示例:
Android中的Intent类,该类也实现了Cloneable接口
public class Intent implements Parcelable, Cloneable {
@Override
public Object clone() {
return new Intent(this);
}
public Intent(Intent o) {
this.mAction = o.mAction;
this.mData = o.mData;
this.mType = o.mType;
this.mPackage = o.mPackage;
this.mComponent = o.mComponent;
this.mFlags = o.mFlags;
this.mContentUserHint = o.mContentUserHint;
if (o.mCategories !=null) {
this.mCategories =new ArraySet(o.mCategories);}
if (o.mExtras !=null) {this.mExtras =new Bundle(o.mExtras);}
if (o.mSourceBounds !=null) {this.mSourceBounds =new Rect(o.mSourceBounds);}
if (o.mSelector !=null) {this.mSelector =new Intent(o.mSelector);}
if (o.mClipData !=null) {this.mClipData =new ClipData(o.mClipData);
}
}
}
Uri uri = Uri.parse("smsto:10086");
Intent shareIntent =new Intent(Intent.ACTION_SENDTO, uri);
shareIntent.putExtra("sms_body","hello");
Intent intent = (Intent)shareIntent.clone() ;
startActivity(intent);
网友评论