call service vs dao from another service

和自甴很熟 提交于 2019-12-20 12:44:42

问题


I have User And Role entities and Service, DAO layers for them. I need Role list from UserService.

Which layer should I use from UserService? Call list method of RoleService vs RoleDAO? Which one is common use and why?


回答1:


Normally DAO layer is close to database, Service layer is encapsulating your business logic, performing any transactions or other things rather than just calling DAO.

Service calling another service is more common because

  1. Your RoleService can have some business code evaluated, you can benefit from transactions or passing messages via JMS or you can have some security on service methods in future. So separating concerns is good practice.

  2. Easy to mock the services and test ( this can be argued even DAO can be tested), but separating business logic is good way by using service layer interfaces.

But if you dont have any business logic in service layer, you can avoid redundant code by simply using DAO (but for the future you will have a code debt for refactoring if you think of service layer business )




回答2:


Call the list method in the RoleService.

The business logic around Roles may change one day and all changes in the RoleService to handle that will be useless for all code calling the DAO directly.



来源:https://stackoverflow.com/questions/32049609/call-service-vs-dao-from-another-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!