您知道,对于API项目,有许多模式可以检索并向客户端提供数据。 Controller <-> Service <-> Dao
模式是其中一种模式。
从服务层或服务层返回任何类型的对象返回对象必须是相关实体吗?
例如,我们有User
,UserService
,UserDao
。
UserService返回类型应该是User还是适合任何类型的对象?
在服务层中进行逻辑操作迫使我使用其他对象作为返回类型。
该案例的最佳做法是什么?
答案 0 :(得分:1)
广泛接受的做法涉及服务中包含所有业务逻辑,并在您的案例中返回像User这样的数据传输对象(DTO)/业务对象。服务可以调用DAO,任何其他数据源来获取实体,mapper / converter util可以用于将实体转换为DTO对象。
从Service返回的DTO对象可以嵌入到ResponseEntity中(在Spring MVC的情况下)并从控制器返回。
这使您的应用程序分为三个独立的层,如Web,service,dataaccess。这支持设计原则,如分离关注,单一责任。这也使您的单元测试和代码管理更容易。
答案 1 :(得分:1)
我发现我需要3种对象来保持事物的可管理性(我仍在努力提出一个不错的命名策略)。有时有好处: