gpt4 book ai didi

dns - 域层访问持久性的东西

转载 作者:行者123 更新时间:2023-12-04 07:07:24 24 4
gpt4 key购买 nike

我试图让我的领域层尽可能“纯粹”,而不涉及持久性或其他基础设施问题。但是,有时我的域层需要使用 RDBMS 或其他外部依赖项的服务,我不知道如何处理它。

例如,我的应用程序中的每个域对象都实现了一个 IValidatable 接口(interface),客户端调用该接口(interface)以获取阻止对象被持久化的损坏规则列表。在少数情况下,上述验证例程涉及调用 DAO 类以检查特定记录的存在。我们没有使用 ORM;相反,我们使用使用数据访问对象模式构建的持久层。我应该围绕这个数据库访问创建一个服务/包装类并让我的域对象与之协作吗?添加这种间接级别是可以接受的,还是我仍在污染我的域对象?

最佳答案

通常的答案是使用某种对象关系接口(interface)。您的领域层呈现您的领域模型的接口(interface)。你有一个关系数据库,你需要在它们之间有一个层来执行object-relational mapping .您说“我们没有使用 ORM”,但实际上您是:您只是直接在域层中进行映射。

制作该映射的问题被称为 object-relational impedance mismatch。问题。如果你坚持不明确的 ORM 层,那么是的,你应该编写类来封装使用 DBMS 的细节,(当然,当你这样做时,你会在那里引入 ORM 类。)

确实,很难避免使用一些 ORM 层。

关于dns - 域层访问持久性的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917612/

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