IOC--框架进阶

IOC控制反转

  • 含义:把高层对底层的依赖 转移到由第三方决定 避免高层对底层的直接依赖 使得程序架构具有良好的扩展性和稳定性
  • 理解:就是一种目的--解除依赖

DI依赖注入

  • 含义:在构造对象是 可以自动化去初始化 被构造对象所需的对象
    注入方式有
    • 构造函数注入
    • 属性注入
    • 方法注入
      【注】以上注入方式 实际都是靠反射做到的
  • 理解:是实现IOC的一种手段 只有通过依赖注入 才能做到无限层级的依赖抽象 也才能实现控制反转

DIP依赖倒置原则

  • 含义:系统架构时 高层模块不应该依赖于底层模块 二者应该通过抽象来依赖 -- 即依赖抽象 而非细节
    最简单的抽象实例化
IPhone phone = new AndroidPhone()

这样左边抽象 但右边实例化非抽象 想实现左右两边均可抽象 这种情况下 便出现了容器【常见容器 比如Unity、Autofac等】由容器去决定创建具体类型 (Unity的使用可参见:https://www.cnblogs.com/Alicia-meng/p/13551564.html)

那什么是高层对底层的依赖呢

当程序较为复杂时 往往分层架构就是必须的 我们比较常见的一般都是3层架构 像这样

当UI层 去调用BLL层时 UI层就相对而言是高层 BLL层就相对是底层
此时想实现DIP依赖倒置原则 我们可以这样做

原文地址:https://www.cnblogs.com/Alicia-meng/p/13551617.html