我正在构建一个 Web 应用程序,主要由后端/数据库数据的 CRUD 操作组成。在某些情况下,我必须编写业务逻辑(我确信随着我们深入开发,我们将构建更多的业务逻辑)。目前,对于我创建的每个 UI 屏幕,我创建一个模型类、Service 类、DAO 类、一个控制器(本质上是 servlet)和一堆 jsp 页面。在大多数情况下,服务类只是调用 DAO 中的方法来传入模型对象。本质上,我们使用模型类来映射 UI 屏幕中的数据。因此,当提交表单时,控制器将填充模型对象。我已经开始使用服务类来保持从 Web 层到 DAO 层的分离层。但有时我觉得服务类只是添加了不必要的 API 调用级别,我认为我可以将 DAO 注入到 Controller 中并更快地完成任务。我只想在需要执行其他业务逻辑时才使用服务类。如果您必须设计一个应用程序,您会考虑使用控制器->DAO 与控制器->服务->DAO 控制流的哪些因素?
DAO 更加细粒度,并且处理一个特定实体。服务提供宏观层面的功能,最终可能会使用多个 DAO。通常,服务用于定义事务边界以获得原子性。换句话说,如果您最终使用多个 DAO 更新多个表,则在服务中定义事务边界将有助于提交或回滚对数据库所做的所有更改。
在您的设计中,由于您主要是为各种实体执行 CRUD,因此服务似乎并没有增加太多价值。然而,将基于 Web 的前端视为更新数据的一种方式。使用服务将允许您稍后向其他形式的客户端(例如第三方集成商等)公开与 Web 服务相同的功能。
所以,综上所述,你的设计似乎符合常规做法。如果您觉得可以基于某个共同主题将多个服务合并为一个,从而可以减少代码开销,那么,您应该继续这样做。归根结底,最终目标是创建可维护的代码,没有人害怕在需要时进行更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)