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

     

  • 相关阅读:
    辅助构造器
    pycharm、webstorm和idea激活码
    Executor
    生产者和消费者模型
    Master和worker模式
    Future模式
    记事本中快速查看数字对应的ASCII
    C#中时间戳和日期相互转换
    Dos命令调用FlashFXP上传文件
    curl 上传文件
  • 原文地址:https://www.cnblogs.com/xianchengzhang/p/14094695.html
Copyright © 2011-2022 走看看