欢迎光临
个人技术文档整理

依赖倒置原则如何理解

依赖倒置原则:面向对象语言程序设计时,高层模块不要依赖于低层模块,二者应该通过抽象来依赖(依赖抽象,而不是依赖细节),核心为 使用反射来 实例化 对象

依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
 
层级关系:一般是高层模块使用底层模块:UI  > BLL > DAL
 
面向细节编程:普通类
面向抽象编程:接口---实现类
缺点:
1、查看实现不太方便
2、方法必须在接口里面声明
优点:
 
 
DIP依赖倒置-->IOC容器--->DI
 
 
 
 
IOC容器:就是一个工厂
 
 
 
 
 
IOC:控制反转,常规情况下,高层依赖低层,项目是不稳定的。
        ///           ioc  就是把高层对低层的依赖去掉,换成对抽象的依赖。
        ///           细节交个第三方来决定,这就是控制反转。
        ///           反转的目的:为了降低依赖,增强扩展性(随意扩展实现层 BLL,DAL)。
   起始IOC 是一个目标。
 
 
DI:依赖注入,其实就是在实现IOC的时候,会遇到对象依赖的问题,(多个接口相互依赖) 依赖注入就是指在IOC创建对象时,通过一定的技术手段,去自动完成依赖对象的创建并传入!
 
优先级:构造函数注入---属性注入---方法注入
 
以上为执行顺序---推荐使用构造函数注入,可以不用声明特性(不用引用(DLL)容器的依赖)
 
aspnetcore 内置的容器【ServiceCollection就只支持 构造函数的注入】
DI是没有层数限制,可以一直去依赖注入,才能真正的做到IOC(递归)是实现IOC的手段
 
 
 
 
 
 
 
 
赞(1)