gpt4 book ai didi

java - 混合 DAO 和服务调用

转载 作者:行者123 更新时间:2023-12-01 18:15:25 24 4
gpt4 key购买 nike

假设我们在服务层之上有一些层,例如 Web Controller 。服务层又位于 DAO/Repo 层之上。在上层,服务调用与存储库调用一起使用。它在某种程度上打破了应用程序的分层,但我们真的应该费心将像 findAll() 这样的 repo 方法包装到服务方法中吗?我不这么认为。这种设计是否有任何缺点可能会导致很多痛苦?交易问题?

最佳答案

我会反过来问你的问题 - 为什么不为这样的方法建立一个服务层?包装一个 DAO 方法是不是很痛苦:

 public class PersonService {
...
private PersonDao personDao;
...
public List<Person> findAll() {
return personDao.findAll();
}
...
}

客户数据如果您不想将代表 Person 的数据实体发送回 Controller 怎么办?您可以将服务层中的数据映射到仅客户端依赖的对象。

耦合您还耦合了各层。 Controller 层应该只依赖于服务层,服务层应该只依赖于DAO层。

交易所有事务都应该在服务层处理(因为一个服务方法可能调用多个 DAO 方法)。

业务逻辑所有业务逻辑都应该位于您的服务层中。因此,您绝对不应该通过直接调用 DAO 来绕过此类逻辑。

我知道,对于像 findAll 这样的方法,这似乎毫无意义,但我认为层耦合的观点打败了这个论点。

关于java - 混合 DAO 和服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29938023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com