在Java应用程序中常见的是:

  • IHM层
  • 服务层
  • 岛层

  • 通常,每个层都有自己的对象,并依靠转换器将对象从一层转换为另一层。

    就我而言,我使用Sing MVC作为IHM层,并使用MyBatis作为doa层。

    由于Spring MVC和MyBatis仅使用不带任何注释的bean:

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

    最佳答案

    在大多数情况下,保持层之间的完全隔离是一个好习惯。

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

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

    somObj.setUserLastName(dao.getSureName());
    

    至:
    somObj.setUserLastName(dao.getLastName());
    

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

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

    09-26 19:03