层间java类型转换

标签 java type-conversion layer

在 Java 应用程序中很常见:

  • IHM 层
  • 服务层
  • 一个道层

每个层都有自己的对象并依赖转换器将对象从一个层转换到另一个层是很常见的。

在我的例子中,我使用 Sing MVC 作为 IHM 层,MyBatis 作为 doa 层。

因为 Spring MVC 和 MyBatis 只使用 bean 而没有在 bean 上做任何注解:

是否有必要在 3 层上有不同​​的对象? 在 3 层之间共享同一个对象是一种好习惯吗? 或者为什么不建议这样做?

最佳答案

在大多数情况下,在层之间保持完全分离是一种很好的做法。

假设您有一个名为 UserDAO 的对象,用于保存用户数据,在所有层上编写了大量代码后,您决定将 sureName 更新为 lastName 在对象中,现在您必须遍历所有层并更改对该对象字段的每个引用。

另一方面,如果您将此对象保留在 DB 层并将其映射到上层的其他对象,则您需要更改的只是映射:

somObj.setUserLastName(dao.getSureName());

到:

somObj.setUserLastName(dao.getLastName());

当然这是一个愚蠢的例子,但它只是为了演示。

另一方面,分离每一层上的每个对象可能会导致大量冗余和重复,并且会变成维护恐怖,因此您需要考虑利弊并决定最适合分离和分离的位置哪里没有。

关于层间java类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11504273/

相关文章:

casting - 无法将字符串从标准输入解析为 float - Rust

python - 逐元素乘法 - 'NoneType' 对象没有属性 '_inbound_nodes'

ios - 带角度的图层

java - android java从字符串中获取html图像标签

java - 为什么Jruby不需要 'net/http/server'和gnu.io.PortInUseException错误

c++ - 如何在 C++ 中将 CString 转换为 double?

c# - 将数字对应的chars转换为uint

merge - 凯拉斯 : How to merge a dense layer and an embedding layer

Javafx Canvas 在完成之前不会显示

java - 当我使用多个关系路径时,Ebean 查询运算符 "Fetch"不起作用