一.   控制反转和依赖注入:

  1. 控制反转的前提, 是依赖倒置原则, 系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖 (依赖抽象,而不是细节)
  2. 如果要想做到控制反转(IOC), 就必须要使用依赖注入(DI), 也就是说控制反转是要实现的目的, 而依赖注入是达到这种目的的一种技术手段
  3. DI依赖注入, 在构造对象时,可以自动的去初始化当前需要构造的这个对象所需要的资源, 将其依赖的所有资源自动全部初始化, 有三种形式,  通过构造函数注入,   通过属性注入   通过方法注入(依赖注入的三种方式)
  4. 有了依赖注入,才可能做到无限层级的依赖抽象,才能做到控制反转

二.   一个简单的容器雏形, 部分代码示例:

  a)  这里相当于UI, 可以看做是高层

1 //全部都依赖细节
2       AndroidPhone phone = new AndroidPhone(); //这边的细节类, 可以看做是低层
3       //左边依赖于抽象, 但是右边还是在依赖细节
4       IPhone phone = new AndroidPhone(); 
5       //左边依赖于抽象, 右边交给工厂
6 // 高层本来是依赖低层,但是可以通过工厂(容器)来决定细节,去掉了对低层的依赖, 这就是IOC控制反转:把高层对低层的依赖,转移到第三方决定,避免高层对低层的直接依赖(是一种目的)
7    IPhone phone = ObjectFactory.CreatePhone();//容器的雏形
View Code

相关文章:

猜你喜欢
相关资源
相似解决方案