【发布时间】:2018-04-02 14:06:35
【问题描述】:
我是 DDD 和存储库设计模式的新手,事实上我在这方面没有任何经验。不久前我遇到了它,虽然我不完全理解它,但我觉得它真的很灵活,我应该试一试。所以我正在研究这个新的 Xamarin.Forms 项目,我想实现它。该应用程序涉及从 google firebase 获取数据并将这些数据保存在本地数据库中。现在从我所读到的关于存储库模式的内容中,存储库只是作为实际数据存储的抽象,因此客户端代码不知道数据的持久性和获取是如何完成的,所以这样可以在不破坏客户端代码的情况下更改数据源/存储(如果我错了,请纠正我)。我遇到的第一个问题是如何定义我的模型,我在网上阅读了很多关于如何在 DDD 中定义模型的文章,但他们所做的只是谈论和谈论并没有具体的答案,我的模型定义是否应该镜像我的数据如何存储在 firebase 上,或者我将如何将其保存在本地 sqlite db 上?。 这个问题困扰了我一段时间,然后我意识到这两种方式都是错误的,领域模型应该与如何它是持久化的,除非它是持久化模型,所以我再次上网阅读了域模型和持久性模型,我得到了更多的讨论。底线是,有人可以通过示例简单地向我解释如何将域模型与其持久性模型分开以及如何为两个数据存储设计存储库,我是否会有一个用于本地存储库和另一个用于本地存储库的存储库? firebase 一,那么我何时以及如何使用域和持久性模型?
【问题讨论】:
标签: firebase-realtime-database domain-driven-design repository-pattern ddd-repositories domain-model