一位同事最近建议我们应该使从应用程序的服务层传递到 View 的模型对象/bean 不可变。
这样做有什么具体原因吗?有什么好处或缺点吗?这个想法从何而来?
最佳答案
这是否是一个好主意取决于唯一的目的。如果它是纯 View bean(因此不是真正的模型 bean),那么使它们不可变可能确实有意义。这相对简单:只需移除 setter 即可。这可以防止 View 更改 bean,例如 <c:set>
和<jsp:setProperty>
.
但总而言之,我认为这没有必要夸大,除非您想将 View bean 作为第 3 方 API 提供并以这种方式防止误解/误用。或者,如果您确实需要 setter ,那么它们可能根本不应该变得不可变。
关于java - 是否有特定原因使 View bean 不可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901474/