首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

原形模式(Prototype)

2012-10-09 
原型模式(Prototype)?????? 在Java语言里深复制一个对象,常常可以先使对象实现Serializable接口,然后把对

原型模式(Prototype)

?

????? 在Java语言里深复制一个对象,常常可以先使对象实现Serializable接口,然后把对象(实际上只是对象的一个拷贝)写到一个内存数组流里(腌成咸菜),再从流里读回来(把咸菜回鲜),便可以重建对象。

?

/** *  */package prototype;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.OptionalDataException;/** * @author Administrator *  */public class ConcretePrototype implements Prototype {    /**     * 浅复制     */public Object clone() {try {return super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}return null;}/** * 深复制 * @return * @throws IOException * @throws OptionalDataException * @throws ClassNotFoundException */public Object deepClone() throws IOException, OptionalDataException,ClassNotFoundException{// write to streamByteArrayOutputStream bo = new ByteArrayOutputStream();ObjectOutputStream oo = new ObjectOutputStream(bo);oo.writeObject(this); // read from stream ByteArrayInputStream bi = new  ByteArrayInputStream(bo.toByteArray());ObjectInputStream oi = new ObjectInputStream(bi);return (oi.readObject());}}
?

d

热点排行