<java與模式> ---電子書
原型模式:
深度拷貝:一個是將一個對象中的一個所有域和方法都復制一遍,其中的對象域也一并復制;另一個種是通過流來進行深克窿,因為在java虛擬機中,當把一個對象寫到流的對象只是一個拷貝,JVM中還存在原對象。(把對象寫到流的過程叫串行化——Serializable)要能夠實現第二種深復制必須滿足,類中所引用的對象全部都是串行話的,否則,就需要仔細考察那些不可串行化的對象是否可設成transient,從而將之排除在復制之外。
代碼測試:
public Object objcetClone() throws IOException, ClassNotFoundException{
ByteArrayOutputStream o = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(o);
out.writeObject(this);
ByteArrayInputStream i = new ByteArrayInputStream(o.toByteArray());
ObjectInputStream in = new ObjectInputStream(i);
return in.readObject();
}
posted on 2005-07-30 21:05
sky 閱讀(109)
評論(0) 編輯 收藏