原型模式可以复制原有对象的数据而无须新建一个新的对象,这在构造一个复杂对象和耗时的对象时十分有用,可以快速的复制对象的内容,节省系统时间的开销。其顶层分析图如下:
java中提供了一个clonable的接口,还有提供了一个clone的方法,可以方便的实现这种模式。
首先,让你需要克隆的类实现clonable接口,并实现clone方法。
public class ClonePrototype implements Cloneable {
private int num = 0;
public Object Clone(){
ClonePrototype o = null;
try {
o = (ClonePrototype)super.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return o;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
然后,写一段测试代码。
public static void main(String[] args) {
// TODO Auto-generated method stub
ClonePrototype c = new ClonePrototype();
c.setNum(100);
// 开始克隆
ClonePrototype cp = (ClonePrototype) c.Clone();
System.out.println("c:"+c.getNum()+ " cp:"+cp.getNum());
}
这样,就可以方便地得到类的实例了。当然值得注意的是,这里实现的实际上是淺复制,至于什么是淺复制和深复制,大家可以到网上去找一下。
阅读(1078) | 评论(0) | 转发(0) |