use*_*142 4 .net c# web-services
出于某种原因,你总是让生活中的人知道但不喜欢解释它们 - 所以我来到这里希望能够了解IRepository模式是什么.
我有大约1年的编程经验,并希望有人向像我这样的新手清楚地解释上述模式是如何工作的.
我收到了来自多个来源的混合消息,我现在开始迷惑*%&^ $.但是,我注意到的是,通常在提到IRepository模式时,还会提到其他熟悉的术语,如域,域对象,域模型,应用程序服务,域服务,Web服务等.
任何人都可以给出一个解释(不是重量级的,但足以让每个组件的含义足够好)...请分享您的经验!
存储库模式通常作为域驱动设计(DDD)的一部分进行讨论.
以下内容过于简化以达到目的.
DDD是用于构建应用程序的体系结构.在其中,开发人员将定义模仿业务需求的模型.例如,如果您正在构建电子商务应用程序,那么您将拥有产品模型和购物车模型(以及其他内容).
在此体系结构中,存储库负责持久化和检索模型.在我们网站的访问者将产品添加到他/她的购物车后,我们将构建购物车对象var cart = new Cart(sessionId, productId, yada...)然后调用repository.Save(cart).
的IRepository,更容易IRepository<T>接口用于简化您的存储库.它们通常包含类似的方法Get(int id)和Save(object o)那些不会改变,无论您是节能产品或购物车(请记住,所有的信息模型).在这种类型的应用程序中,您将使用一个存储库来处理所有持久性,并仅为CartRepository特定用途创建专用存储库(例如).
DDD的另一部分是应用程序不关心模型的持久性,只是它们是持久的.通过创建接口,可以将应用程序配置为将对象持久保存到任何地方,而无需更改代码.在我们的示例应用程序,我们可以有SQLServerRepository,OracleRepository,XmlRepository,和MongoRepository.只要他们实现了IRepository接口,我们的购物车就能够将对象持久保存(保存)到各种数据库或XML文件中.