我从网上看我这点,这表示接口用于此存储库模式 - 为什么我们需要接口?
- 使用TDD方法
- 更换持久性引擎
但我无法理解如何界面有用到这个点Replace persistance engine
。 让我们考虑我创造EmployeeRepository
public class EmployeeRepository
{
public employee[] GetAll()
{
//here I'll return from dbContext or ObjectContex class
}
}
一个基本的(不使用泛型)资源库,如何界面进入图片?
如果我想创建一个接口,为什么使用upcasting?例如
IEmployee emp = new EmployeeRepository() ;
vs
EmployeeRepository emp = new EmployeeRepository();
请详细解释我,以及接口在存储库模式方面的其他有用性。
奇妙的答案,每个解释都值得..现在我知道它是如何工作的..谢谢你,我不能将这个答案标记为接受,因为我的分数低于15,只要我赚取我会接受这个答案。 – Meson
感谢那篇文章..并假设如果我配置'EmployeeRepositoryEF'在我的依赖注入框架中,我的控制器将消耗此'EmployeeRepositoryEF',但是如果我想要在同一控制器中使用2实现..如果这个问题愚蠢im非常抱歉.. – Meson
在示例I提供程序中,控制器在其构造函数中需要一个'IEmployeeRepository'实例。只有一个实现可以通过。另一方面,你可能有另一个控制器可能需要不同的接口实现。这完全有可能。您只需配置您的DI框架,以便将ControllerA和ControllerB中的ImplementationB注入到ControllerA中。不同的DI框架之间的语法当然会有所不同。 –