存储库模式是设计模式吗?在由Gang组成的设计模式列表中,其四个不存在。如果它是一种设计模式,那么它会属于哪种模式,即创造,结构或行为。如果没有,那为什么。请清除我的困惑?
答案 0 :(得分:2)
澄清模式可能很难。确实,GOF书中确实添加了模式类别,但是大多数时候人们无法弄清某个东西是否是建筑风格的设计模式,更不用说模式。
Repository pattern是在Patterns of Enterprise Application Architecture一书中介绍的,该书是在GOF书之后发行的。
根据其定义:
存储库在域和数据映射层之间进行中介...
我们可以说这是一种结构模式。
有时人们也使用存储库创建对象,因此在这种情况下,它也可以是创造模式。
因此,这取决于要承担多少责任,但是大多数时候我们可以将其归类为创造模式。
作为一种模式,存储库具有多种变体,很难将其归类。对此也有很多讨论:它具有什么责任,应如何实施等。
更不用说人们开始使用存储库和支持ACID事务的数据库的映射层,以及结合管理这些事务并将更改保存到数据库的Unif Of Work。
如今人们使用MongoDB和Event Sourcing并向其中添加其他方法,例如 .Save 。这些方法确实引起了很多讨论。