1.依赖倒置原则:框架
1)上层模块不依赖与下层模块,而是共同依赖于抽象模块(或者接口)。函数
2)抽象的东西不能是具象,具象依赖于抽象。spa
2.控制反转(Inversion of Control):对象
是软件运行时的一种行为。好比:对象A依赖于对象B,可是在B并非直接去建立A,而是从外界取得A。就是说接口
一个对象并不直接去建立它因此依赖的其余对象。io
3.依赖注入(Dependency Injection):容器
是控制反转的一个具体实现。就像上面说的同样,A的建立不是直接在B中建立,而是经过某些框架(好比Autoface)经过构造函数或者属性设置来完成。软件
IoC,它把传统上由程序代码直接操控的对象的调用权交给容器,经过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的依赖注入
转移,从程序代码自己转移到了外部容器。构造函数