读书人

设计方式原型模式(2)

发布时间: 2012-08-31 12:55:03 作者: rapoo

设计模式——原型模式(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();    }

读书人网 >软件开发

热点推荐