定义html
IOC(Inversion of Control 控制反转),DIP(Dependency Inverson Principle 依懒倒置)都属于设计程序时指导原则,并无具体的实现。比较经常使用的五大原则SOLID(SRP单一职责、OCP开闭原则、LSP里氏转换原则、IOC、DIP)git
DI(Dependency Injection 依懒注入)属于模式,提供了一种具体的处理程序中对应状况的实现github
IoC容器 属于一种框架 例如框架
我只会autofac,属于菜鸟,欢迎交流spa
IoC原则:反转控制(通常与DIP一块儿使用)设计
用代码演示一下code
public class A { public void Task() { var b=new B(); b.DoSomeThing(); } } public class B { public void DoSomeThing() { } }
上面的代码,htm
类A建立和管理类B的对象的生命周期。它控制依赖类对象的建立和生命周期。对象
IoC原则建议反转控制,意味着将控制内容分离到另外一个类。换句话说,将依赖关系建立控件从A类反转到另外一个类,以下所示。blog
public class A { public void Task() { var b=Factory.GetB(); b.DoSomeThing(); } } public class B { public void DoSomeThing() { } }
A类不直接建立B类,而是经过一个工厂建立。咱们就实现了控制反转
DIP原则:高级模块不该该依懒低级模块,二者都应该依懒抽象;抽象不该该依懒具体,具体应该依懒抽象