gpt4 book ai didi

c# - 存储库模式

转载 作者:太空狗 更新时间:2023-10-30 01:08:23 24 4
gpt4 key购买 nike

出于某种原因,生活中总会有人知道一些事情但不想解释它们 - 所以我来到这里希望对 IRepository 模式有一些了解。

我有大约 1 年的编程经验,希望有人能向像我这样的新手清楚地解释上述模式是如何工作的。

我收到了来自多个来源的混杂消息,现在我开始感到 *%&^$ 感到困惑。但是,我注意到,在提到 IRepository 模式时,通常还会提到其他熟悉的术语,例如 Domain、Domain Objects、Domain Model、Application Services、Domain Services、Web Services..

谁能给出解释(不是很深入,但足以很好地了解每个组件的含义)...请分享您的经验!

最佳答案

存储库模式通常作为 domain driven design 的一部分进行讨论。 (DDD)。

为了切中要点,以下过于简单化了。

DDD 是一种用于构建应用程序的架构。开发人员将在其中定义模拟业务需求的模型。例如,如果您正在构建电子商务应用程序,您将拥有一个产品模型和一个购物车模型(以及其他)。

在此架构中,存储库负责持久化和检索模型。在我们网站的访问者将产品添加到他/她的购物车后,我们将构建购物车对象 var cart = new Cart(sessionId, productId, yada...)然后调用repository.Save(cart) .

回答你的问题:

IRepository更有可能IRepository<T>接口(interface)用于简化您的存储库。它们通常包含类似 Get(int id) 的方法和 Save(object o)无论您是保存产品还是购物车,这都不会改变(请记住,所有信息都在模型中)。在这种类型的应用程序中,您将使用一个存储库来处理所有持久性,并且仅为非常特定的用途创建专门的存储库(例如 CartRepository)。

DDD 的另一部分是应用程序不关心模型持久化的位置,只关心它们被持久化。通过创建一个接口(interface),应用程序可以配置为将对象持久化到任何地方/任何地方,而无需更改代码。在我们的示例应用程序中,我们可以有 SQLServerRepository , OracleRepository , XmlRepository , 和 MongoRepository .只要它们实现了 IRepository 接口(interface),我们的购物车就能够将对象保存(保存)到各种数据库或 XML 文件中。

关于c# - 存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9535169/

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