Design patterns 存储库模式变化?

Design patterns 存储库模式变化?,design-patterns,repository-pattern,Design Patterns,Repository Pattern,基于以下url,存储库模式基本上是用于封装数据访问的存储库对象层: 例如,UserRepository对象将具有如下GetUsers()方法 public User GetUsers() { return context.Users; } 这就是存储库模式的全部内容还是更多内容?这种模式有没有命名的变体?例如,我想我在过去遇到过一个人,他断言此模式涉及实体的通用/动态CRUD。例如,由于CRUD是一种基本且可重复的模式,因此存储库模式将为任何/所有实体动态提供CRUD功能。我猜是这样的

基于以下url,存储库模式基本上是用于封装数据访问的存储库对象层:

例如,UserRepository对象将具有如下GetUsers()方法

public User GetUsers()
{
   return context.Users;
}

这就是存储库模式的全部内容还是更多内容?这种模式有没有命名的变体?例如,我想我在过去遇到过一个人,他断言此模式涉及实体的通用/动态CRUD。例如,由于CRUD是一种基本且可重复的模式,因此存储库模式将为任何/所有实体动态提供CRUD功能。我猜是这样的:newrepository().Read()。存储库模式的这种变体有名字吗?

存储库模式只是关于与特定的数据存储实现分离。积垢完全可以放在那把伞下,而且通常是这样

最重要的是要准确地决定哪些业务对象需要哪些操作。您不需要公开所有的CRUD操作


这是一篇非常好的文章,其中包含标准存储库模式实现的示例代码。YMMV

谢谢。您知道我在文章中描述的另一个模式的名称吗?:var users=new Repository().ReadAll()我确信它可以由一个或多个设计模式来描述,尽管存储库模式可能不是描述它的最佳方式。总而言之,此实现基于这样一个事实,即所有实体都将共享通用/可重复CRUD方法的某个子集。ReadAll()或GetAll()仍然适用于存储库模式。您甚至可以适合具有诸如GetWhere(Predicate)或类似查询参数的方法。关于我的最后一条评论,我将把它称为“动态存储库”模式,除非其他人能够识别与此实现相关联的更正式的设计模式