【发布时间】:2019-04-29 03:15:29
【问题描述】:
存储库模式是一种设计模式吗?在 Gang of 4 的设计模式列表中,它不存在。如果它是一种设计模式,那么它属于哪一类模式,即创造型、结构型或行为型。如果不是那为什么。请解开我的困惑?
【问题讨论】:
存储库模式是一种设计模式吗?在 Gang of 4 的设计模式列表中,它不存在。如果它是一种设计模式,那么它属于哪一类模式,即创造型、结构型或行为型。如果不是那为什么。请解开我的困惑?
【问题讨论】:
分类模式可能很困难。的确,GOF 的书确实添加了模式的类别,但大多数时候人们无法弄清楚某个东西是否是 Architectural style 的 Design Pattern,更不用说是模式。
Repository pattern是在GOF之后出版的Patterns of Enterprise Application Architecture一书中介绍的。
从它的定义来看:
存储库在域和数据映射层之间进行中介...
我们可以说这是一个结构模式。
有时人们也会使用 Repository 来创建对象,所以在这种情况下它也可以是一种创建模式。
所以这取决于赋予它多少责任,但大多数时候我们可以将其归类为创造模式。
作为一种模式,Repository 有很多变体,很难将其归入一个类别。关于它也有很多讨论:它有什么职责,应该如何实现等等。
更不用说人们开始使用 Repositories 和支持 ACID 事务的数据库的映射层以及管理这些事务并将更改保存到数据库的Unif Of Work。
现在人们使用 MongoDB 和 Event Sourcing 并向其中添加其他方法,例如 .Save。这些方法确实引起了很多讨论。
【讨论】: