存储库模式是一种设计模式吗? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储库模式是一种设计模式吗? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

存储库模式是一种设计模式吗?在Gang的四个设计模式列表中它不存在。如果它是一种设计模式,那么在哪种类型的模式下,即创造性,结构性或行为性。如果不是那么为什么。请清楚我的困惑?

答案

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

Repository pattern是在GOF书之后发布的Patterns of Enterprise Application Architecture书中引入的。

从它的定义:

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

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

有时人们也使用Repository来创建对象,因此在这种情况下它也可以是Creational模式。

所以它取决于给予它多少责任,但大多数时候我们可以将它作为一种创造性模式进行分类。

作为一种模式,存储库有许多变体,很难将它放在一个类别中。关于它的讨论也很多:它有什么责任,应该如何实施等等。

不要提到人们开始使用带有映射层的存储库来支持ACID事务的数据库以及管理这些事务并保存对数据库的更改的Unif Of Work

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

以上是关于存储库模式是一种设计模式吗? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

依赖注入是一种设计模式吗? [关闭]

设计模式

存储库模式:如何延迟加载?或者,我应该拆分这个聚合吗?

如果相同的表但不同的模式,如何避免重复 jpa 映射(实体、服务、存储库..)?

存储库模式是什么类型的?

设计模式及Python实现