存储库模式是设计模式吗?

时间:2019-04-29 03:15:29

标签: asp.net design-patterns

存储库模式是设计模式吗?在由Gang组成的设计模式列表中,其四个不存在。如果它是一种设计模式,那么它会属于哪种模式,即创造,结构或行为。如果没有,那为什么。请清除我的困惑?

1 个答案:

答案 0 :(得分:2)

澄清模式可能很难。确实,GOF书中确实添加了模式类别,但是大多数时候人们无法弄清某个东西是否是建筑风格的设计模式,更不用说模式。

Repository pattern是在Patterns of Enterprise Application Architecture一书中介绍的,该书是在GOF书之后发行的。

根据其定义:

  

存储库在域和数据映射层之间进行中介...

我们可以说这是一种结构模式

有时人们也使用存储库创建对象,因此在这种情况下,它也可以是创造模式

因此,这取决于要承担多少责任,但是大多数时候我们可以将其归类为创造模式

作为一种模式,存储库具有多种变体,很难将其归类。对此也有很多讨论:它具有什么责任,应如何实施等。

更不用说人们开始使用存储库和支持ACID事务的数据库的映射层,以及结合管理这些事务并将更改保存到数据库的Unif Of Work

如今人们使用MongoDB和Event Sourcing并向其中添加其他方法,例如 .Save 。这些方法确实引起了很多讨论。