当前位置:  开发笔记 > 编程语言 > 正文

什么是序列化代理模式?

如何解决《什么是序列化代理模式?》经验,为你挑选了1个好方法。

唉,谷歌让我失望了......

什么是序列化代理模式?在哪里可以了解有关实现和使用它的更多信息?



1> Bob Carpente..:

在Josh Bloch的Effective Java,Second Edition 的最后一节中有一个很好的描述.

假设您有一个A您想要序列化的类.您首先声明它要实现Serializable.然后使用序列化方法writeReplace()返回一个所谓的"序列化代理",它将被序列化以代替实例A.该writeReplace()方法不需要公开.A永远不会调用默认序列化,因此A可以维护所有API属性.

通常,代理实现为私有静态嵌套类,它本身必须实现Serializable(或Externalizable完全控制读/写过程).因为代理是私有的,所以它的实现细节(例如具有无参数构造函数和可变性)将被隐藏.

代理存储足够的原始对象的状态以便它可以在反序列化时重新构建对象.在反序列化时,代理使用该方法readResolve()返回实例A.对于单身人士来说,这可以是单身实例本身.

我写了一个详细的博客文章,其中包含使用序列化代理序列化Serializing Immutables和Singletons的示例.


,Second Edition 的最后一节中有一个很好的描述.
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有