【发布时间】:2014-06-06 11:17:57
【问题描述】:
总的来说,我知道有 3 大类型的设计模式
- 创建模式(工厂、单例等)
- 结构模式(复合、适配器、代理等)
- 行为模式(规范、命令等)
但我不知道我可以将存储库模式放入哪种类型。
存储库模式是上述三种类型之一吗?还是介于 (2) 和 (3) 模式的中间?
【问题讨论】:
标签: oop design-patterns repository repository-pattern
总的来说,我知道有 3 大类型的设计模式
但我不知道我可以将存储库模式放入哪种类型。
存储库模式是上述三种类型之一吗?还是介于 (2) 和 (3) 模式的中间?
【问题讨论】:
标签: oop design-patterns repository repository-pattern
存储库可以被视为一种特殊的外观(结构),也可以被视为一种特殊的工厂(创造)。另外,由于 Repository 经常暴露出类似集合的接口,那么它可能是 Iterator 的一种特殊应用(行为)。
我想说的是,这些类别和模式本身都不是任何明确的教义。只有一些想法和一种语言试图使它们更加清晰可见。这些类别只是帮助试图以某种方式表达某些模式的作用。此外,模式只是通用松散耦合原则的各种表达方式。它们的边界很模糊。
【讨论】:
Get...() 方法时,您不会告诉自己“我想构造一个新对象”或“X 个新对象”,因此将其称为创建对我来说有点奇怪。
存储库是Facade pattern 的特化,它是结构化的。
【讨论】:
我假设您指的是 Martin Fowler 的 repository pattern。
他说:
存储库:使用类集合接口在域和数据映射层之间进行调解,以访问域对象。
他自己将这种模式归类为“对象-关系元数据映射”。
如果您想使用GOF book 中的类别,我会将其放入结构模式类别中,因为该模式的重点是向客户端呈现界面/视图,类似于适配器/外观/代理模式。
【讨论】: