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

设计方式——原型模式(2)

2012-08-31 
设计模式——原型模式(2)JAVA中使用原型模式接下来让我们来了解一下java中的原型模式,如果要在java中建立原

设计模式——原型模式(2)
JAVA中使用原型模式
    接下来让我们来了解一下java中的原型模式,如果要在java中建立原型,只需要实现Cloneable接口,并且要在类中定义clone()方法,这样就可以调用此类的clone()来进行原型复制了,如果没有实现此接口,调用clone方法时,会出现CloneNotSupportedException异常。clone默认是浅复制,如果要实现深复制,就需要在clone中调用被引用对象的clone方法去复制被引用对象,当然被引用对象也要实现复制接口,不然会出现异常。
    另外给大家讲一下使用序列化实现深复制的方法,这时引用类和被引用类都要继承Serializable接口,在引用类中增加deepCopy方法就可以实现深复制了。举例如下:

    public Object deepCopy() throws Exception    {        ByteArrayOutputStream bos = new ByteArrayOutputStream();                ObjectOutputStream oos = new ObjectOutputStream(bos);                oos.writeObject(this);                ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());                ObjectInputStream ois = new ObjectInputStream(bis);                return ois.readObject();    }

热点排行