当前位置 : 主页 > 大数据 > 区块链 >

GWT-RPC和不可变传输对象

来源:互联网 收集:自由互联 发布时间:2021-06-22
GWT-RPC要求传输对象序列化 must have a default (zero-argument) constructor.同样,最终字段不会被序列化(参见问题 1054). 另一方面,我知道我应该“尽量减少可变性”.我倾向于希望我的TOs是不可变的
GWT-RPC要求传输对象序列化 must have a default (zero-argument) constructor.同样,最终字段不会被序列化(参见问题 1054).

另一方面,我知道我应该“尽量减少可变性”.我倾向于希望我的TOs是不可变的,包含final字段,没有默认构造函数,也没有mutator.

如何在尽可能尊重不可变范式的同时使用GWT-RPC.我是否必须转换为可变对象进行编组,然后返回不可变对象?这甚至值得吗?

Effective Java中的第13项(第二版中的第15项)给出了如何最小化可变性或有利于不变性的策略.

假设我们删除了mutator但保留了非final字段和默认构造函数.效果将是理论上可变的对象,但实际上是不可变的对象.是的,人们可以通过反思通过一些努力来改变对象,但是通过简单地关闭暴露的方法,我们至少可以阻止在这样的情况下对其进行改变,使得对象真正不可变是不切实际的.

网友评论