在 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/