.net core中的IOC容器
IOC是什么:
IOC->控制反转,是一种设计原则,主要实现称为DI(依赖注入)
IOC:调用者不需要创建被调用者的实列,而是交给容器去创建
DI:容器创建好的实列在注入调用者的过程(属性注入,构造函数注入)
IOC如何降低耦合:
A接口
B接口实现类
采用DI后,A的代码只需要定义一个私有B对象,不需要直接new来获得这个对象,而是通过相关容器的控制程序来将B对象在外部new出来并注入A类里的引用中。而具体获取的方法、对象被获取时的状态由配置来指定。
容器:
IOC容器来管理对象的生命周期、依赖关系等,从而使应用程序的配置和依赖性规范与实际的应用程序代码分离。其中一个特点就是通过配置进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。
.net core自带容器的使用方式:
AddTransient:瞬时的,每次访问构造一个
AddSingleton:单例,全局仅一个
AddScoped:在同作用域,服务每个请求只创建一个
设计原则(好莱坞):
不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)
代码:
startup
//DI实现
services.