一个老年人

东边不亮西边亮

导航

IOC,DIP,DI,IoC容器

Posted on 2018-07-30 17:34  一个老年人  阅读(467)  评论(4编辑  收藏  举报

 定义

IOC(Inversion of Control  控制反转),DIP(Dependency Inverson Principle 依懒倒置)都属于设计程序时指导原则,并没有具体的实现。比较常用的五大原则SOLID(SRP单一职责、OCP开闭原则、LSP里氏转换原则、IOC、DIP)

DI(Dependency Injection 依懒注入)属于模式,提供了一种具体的处理程序中对应情况的实现

IoC容器  属于一种框架  例如

我只会autofac,属于菜鸟,欢迎交流

 

IoC原则:反转控制(一般与DIP一起使用)

用代码演示一下

public class A
    {
        public void Task()
        {
            var b=new B();
            b.DoSomeThing();
        }
    }

    public class B
    {
        public void DoSomeThing()
        {

        }
    }

上面的代码,

类A创建和管理类B的对象的生命周期。它控制依赖类对象的创建和生命周期。

IoC原则建议反转控制,意味着将控制内容分离到另一个类。换句话说,将依赖关系创建控件从A类反转到另一个类,如下所示。

public class A
    {
        public void Task()
        {
            var b=Factory.GetB();
            b.DoSomeThing();
        }
    }

    public class B
    {
        public void DoSomeThing()
        {

        }
    }

 A类不直接创建B类,而是通过一个工厂创建。我们就实现了控制反转

DIP原则:高级模块不应该依懒低级模块,两者都应该依懒抽象;抽象不应该依懒具体,具体应该依懒抽象