这是对国际奥委会的正确实施
本文关键字:奥委会 | 更新日期: 2023-09-27 18:07:13
我正试图增加我的控制反转知识,并发现了一些我想知道的代码-这是真正的IoC吗?
public class DepartmentLogic : IDepartmentLogic
{
private readonly IDepartmentRepository _departmentRepository;
public DepartmentLogic(IDepartmentRepository repo)
{
_departmentRepository = repo;
}
public DepartmentLogic()
{
_departmentRepository = new DepartmentRepository(Constants.CONNECTION_STRING_NAME);
}
}
如果单元测试调用这个类,它将传入一个模拟的IDepartmentRepository。然而,所有主要的应用程序代码都使用带有默认构造函数的类,该构造函数随后会生成具体的DepartmentRepository。
正确吗?我想我读到过,你不应该在调用类中新建依赖类,就像在默认构造函数中发生的那样,并且新建具体的DepartmentRepository应该在创建这个类的类中发生。
您提供了将依赖项注入到类中的能力。
当你说你的应用程序只是使用默认构造函数时,你是在说你并没有真正注入依赖项。还是硬编码的
你需要更进一步,提供一些机制在运行时"动态"创建依赖,然后将其注入到类中(通过依赖注入框架或其他自定义机制)。