zoukankan      html  css  js  c++  java
  • 依赖注入

    1.什么是依赖关系

    依赖关系就是一个对象对另一个对象的依赖,没有这个对象就会出异常,如下代码

      public class MyDependency
      {
           public void Msg(string msg)
          {
               Console.WriteLine(msg);
          }
      }

       public class Test
      {
           private MyDependency myDependency = new MyDependency();

           public void ShowMsg()
          {
               myDependency.Msg("zxc");
          }
      }

    Test 类依赖于 MyDependency 类 如果要使用不同实现替换MyDependency必须修改Test

    2.如何解决依赖

    依赖关系通过以下方式解决了这些问题,

    1使用接口或基类将依赖抽象化

    2在服务容器中注册依赖关系

    3将服务注入到使用者的类的构造函数中,框架负责创建依赖关系的实例,并在不用的时候释放

    //抽象为接口
    public interface IMyDependency
    {
       void WriteMessage(string message);
    }
    //继承
    public class MyDependency : IMyDependency
    {
       public void WriteMessage(string message)
      {
           Console.WriteLine($"MyDependency.WriteMessage Message: {message}");
      }
    }
    //注册服务
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddScoped<IMyDependency, MyDependency>();
        services.AddControllersWithViews();
    }
    //构造函数注入
    public class Test
      {
           private IMyDependency myDependency;

           public Test(IMyDependency myDependency)
          {
               this.myDependency = myDependency;
          }
           public void ShowMsg()
          {
               myDependency.Msg("zxc");
          }
      }

     

  • 相关阅读:
    gulp基础
    字符串及字符串的方法
    ES5
    JS的设计模式
    VSN与GitHub
    JS闭包函数的概念及函数的继承
    Promise的工作原理
    JS原生的Ajax
    MySQL数据库的基本操作
    & 异步使用场景
  • 原文地址:https://www.cnblogs.com/xianchengzhang/p/14094695.html
Copyright © 2011-2022 走看看