在Java应用程序中常见的是:
通常,每个层都有自己的对象,并依靠转换器将对象从一层转换为另一层。
就我而言,我使用Sing MVC作为IHM层,并使用MyBatis作为doa层。
由于Spring MVC和MyBatis仅使用不带任何注释的bean:
是否需要在3层上具有不同的对象?
在3层之间共享同一对象是一种好习惯吗?
还是为什么不建议这样做?
最佳答案
在大多数情况下,保持层之间的完全隔离是一个好习惯。
假设您有一个名为UserDAO
的对象,用于保存用户数据,并在所有层上编写了大量代码后,决定将sureName
更新为该对象中的lastName
,现在您必须遍历所有层并更改对该对象字段。
另一方面,如果将此对象保留在DB层上并映射到上层的其他对象,则只需更改映射即可:
somObj.setUserLastName(dao.getSureName());
至:
somObj.setUserLastName(dao.getLastName());
当然,这是一个愚蠢的例子,但这只是为了演示。
另一方面,分离每一层上的每个对象可能会导致大量的冗余和重复,并且可能会导致维护恐怖,因此您需要考虑利弊,并确定最适合分离的位置和不适合分离的位置。