从 Asp.net 2.0 开始,就有了提供者模型。在实现细节上,提供者是派生自 ProviderBase 的类,它是一个抽象类而不是接口,但无论如何提供者模型都在那里,因此我们可以通过编辑 web.config 来换入不同的实现。例如,如果您创建一个博客应用程序,您可能有一个 BlogProvider : ProviderBase,那么您可以有 BlogProvider 的实现,例如:SqlBlogProvider、OracleBlogProvider 甚至 MockBlogProvider 用于测试。
现在,Repository Pattern 越来越流行,我觉得它是为了满足同样的需求,虽然在实现细节上,你通常使用接口,所以 IBlogProvider,你会通过构造函数而不是属性注入不同的实现,但本质上我没有看不出这两种模式给我们带来的差异。
就个人而言,我觉得 Provider Model 在实现中对我来说更自然。那么,它们之间是否有区别,或者它们只是不同社区赋予不同名称的同一事物?
我很感激对此的任何评论,谢谢,雷。