首先,这里有VO
的背景知识。 VO
是在前端层中创建的模型对象,用于传递从服务层返回的值。
下面的虚拟代码示例:
UserResponseTypeFromService user = userAccountService.getUser(...);
UserVO userVO = ServiceResponseHelper.getUserVOFromServiceResponse(user);
然后,前端代码将仅使用userVO
而不是user
对象。
我的问题是UserVO
课程,我是否必须实施Serializable
?在这种情况下我们应该始终考虑线程安全吗?
提前致谢。
答案 0 :(得分:0)
你的问题陈述似乎有点抽象/不清楚,但我仍然会尽力解决你的问题。
关于可序列化;如果必须持久保存或通过线路发送该类的对象,请确保类实现Serializable。如果您的对象不符合要求,则无需实现Serializable(除非您计划对serialVersionUID
字段执行某些操作)。
关于线程安全;你能澄清这里的背景吗?
答案 1 :(得分:0)
如果您想将VO存储在会话中和/或想要通过线路传输它们(DTO?),那么您应该实现Serializable。
VO只是数据持有者,通常是不可变的。如果你遵循这个原则,那么线程安全是给定的(因为它们是不可变的)。否则,如果要将它们存储在会话中,则必须考虑线程安全性。