首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >论DAOs的正确使用(取2)

论DAOs的正确使用(取2)
EN

Stack Overflow用户
提问于 2012-01-26 10:02:08
回答 3查看 124关注 0票数 1

可以说,当你到了把一刀插入另一刀的时候,你已经越过了DAO的范围,达到了业务层的问题吗?

注意:--我没有想到一个特定的问题,而是试图提取关于DAOs使用的一般经验规则。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-26 10:05:46

是。道斯不应该互相依赖。

协调不同DAO是业务/服务层的工作。

然而,如果你能描述你的具体情况,我们就能给出一个更准确的答案。

编辑:

在阅读了@edutesoy的答案之后,我看到了他的论点的逻辑。

因此,我将通过这样的回答来完善我的答案--这样做本身并不是错误的,但它有点“臭味”。

这是因为DAO层的正常结构--对于每种类型的实体(CustomerDAOOrdersDAO等),通常都有一个DAO。如果您的CustomerDAO正在使用您的PaymentsDAO,它闻起来有点违反SRP:CustomerDAO是否也负责与支付相关的操作?

因此,总之-在将它引入我的代码之前,我肯定需要一个非常好的理由。

票数 1
EN

Stack Overflow用户

发布于 2012-01-26 10:06:18

道与商的划分是“武断的”。当类用于“从存储存储库检索和存储数据”时,我们说类是DAO。在另一个DAO中插入DAO并不妨碍它“从存储库中检索和存储数据”,因此对我来说,您的问题的答案是否定的。

没有人说你不能把一个DAO注入另一个(即使它通常不是这样做)。

票数 3
EN

Stack Overflow用户

发布于 2012-01-26 10:23:57

希望你应该从思考什么是刀开始。

如果使用JPA,则实体管理器已经是泛型DAO (by DAO模式)。大多数Java开发人员所称的DAO不是DAO模式中的DAO。这是一种重构:将与数据库相关的语句移出到一个外部类(我认为这就是您正在谈论的那种DAO )--不要误解我,我认为这是有用的。

所以我对这个刀的理解是一些重构的事情。重构的总体目标是提高代码的可读性和可维护性。因此,如果您的代码随着这个间接方向变得更好,那么继续,但是您应该记录一下您的项目DAO -模式与其他Java开发人员使用的DAO模式略有不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9016428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档