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");
          }
      }

     

  • 相关阅读:
    Centos 配置网易YUM源
    JDK 变量配置
    redis如何解决key冲突?
    大数据技术(1)流式计算与Storm
    20151211小问题
    返回顶部
    20151210小问题2
    20151210小问题
    20151209小问题
    前端程序员的自我修养
  • 原文地址:https://www.cnblogs.com/xianchengzhang/p/14094695.html
Copyright © 2011-2022 走看看