【发布时间】:2010-11-09 09:50:10
【问题描述】:
能否请您概述一下存储库模式和工厂模式之间的区别?
【问题讨论】:
-
顺便说一句,这两种模式是不相关的......
标签: c# oop design-patterns
能否请您概述一下存储库模式和工厂模式之间的区别?
【问题讨论】:
标签: c# oop design-patterns
我认为区别在于两者的用法。
如果您想创建对象并用数据库数据填充这些对象,您将使用存储库。您可以拥有一个CustomerRepository,其中包含所有相关方法,用于检索和操作Customers。
如果您想创建对象并用数据填充这些对象,请使用工厂。一个例子可以是ColorFactory。您可以用许多可能的 RGB 颜色填充该颜色,以便稍后使用。
如果您查看“保存”数据之类的内容,您还可以使用不同的词,例如:存储、保存和持久化。这三个都用于不同的目的,但它们可能会做同样的事情:-)
【讨论】:
存储库模式处理创建一组数据访问服务,即。 CRUD 方法。 另一方面,工厂模式处理对象的创建方式。工厂类将有一个返回类的新实例的方法。
两者是相互独立的;但是,您经常会看到工厂模式与存储库模式一起使用,以创建实体的新实例。
【讨论】:
The Factory pattern 用于创建对象,而the Repository pattern 描述了一种针对数据源封装 CRUD 操作的通用方法。
【讨论】:
Factory 使用 Repository 作为对象创建的一部分吗?