总的来说,我知道有三种大型的设计模式
但我不知道哪种类型可以放入Repository模式。
存储库模式是否属于以上三种类型之一?或者它是在(2)和(3)模式的中间?
答案 0 :(得分:13)
存储库可以被视为一种特殊的Façade(结构),也可以被视为一种特殊的工厂(创造性)。此外,由于Repository经常暴露类似集合的接口,因此它可能是Iterator(行为)的特殊应用。
我想说的是,这些类别和模式本身都不是任何明确的学说。只有一些想法和语言试图使它们更明确可见。这些类别只是试图以某种方式表达某些模式的帮助。模式也只是通用松耦合原理的各种表达。他们的边界模糊不清。
答案 1 :(得分:5)
存储库是Facade pattern的结构化的专门化。
答案 2 :(得分:4)
我假设您参考Martin Fowler的repository pattern。
他说:
存储库:使用类似集合的接口访问域对象,在域和数据映射层之间进行调解。
他自己将模式归类为“对象 - 关系元数据映射”。
如果你想使用GOF book中的类别,我会把它放到结构模式类别中,因为这个模式的重点是向客户端提供一个接口/视图,类似于Adapter /门面/代理模式。