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

Posted

tags:

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

总的来说,我知道有三种大型的设计模式

  1. 创作模式(工厂,单身等)
  2. 结构模式(复合,适配器,代理等)
  3. 行为模式(规范,命令等)

但我不知道我可以将Repository模式放入哪种类型。

存储库模式是否属于以上三种类型之一?或者它是在(2)和(3)模式的中间?

答案

存储库可以被视为一种特殊的外观(结构),但也可以被视为一种特殊的工厂(创造)。此外,由于Repository经常暴露类似集合的接口,因此它可能是Iterator(行为)的特殊应用程序。

我想说的是,这些类别和模式本身都不是任何一种明确的学说。只有一些想法和语言试图使它们更明确可见。这些类别只是试图以某种方式表达某些模式的帮助。模式也只是通用松耦合原理的各种表达。他们的边界模糊不清。

另一答案

存储库是Facade pattern的结构特殊化。

另一答案

我假设你引用Martin Fowler的repository pattern

他说:

存储库:使用类似集合的接口访问域对象,在域和数据映射层之间进行调解。

他自己将模式归类为“对象 - 关系元数据映射”。

如果你想使用GOF book中的类别,我会把它放到结构模式类别中,因为这个模式的焦点是向客户端呈现一个接口/视图,类似于Adapter / Facade / Proxy模式。

以上是关于存储库模式是什么类型的?的主要内容,如果未能解决你的问题,请参考以下文章

c# 泛型类型和存储库模式

存储库模式缺少啥?你如何在现实世界中使用它?

存储库模式的替代方案?

有哪些不同类型的设计模式?

大小端存储在哪一章

如何在存储库模式中为同一接口使用两个数据存储?