zoukankan      html  css  js  c++  java
  • c# 依赖注入DI以及它的好处

    什么是依赖注入

    一种实现对象及其合作者或者依赖项之间松散耦合的技术。

    以前我们在action中使用对象的时候 可能是通过new 现在我们不需要这样做了。

    我们可以交给其他某个地方帮我们new 我们只管使用这些对象

    以前我们调用其他类的时候

     public IActionResult Index()
            {
                var tool = new EmailTool();
                tool.Send("xxx");
    }

    依赖注入的方式的好处

    以后我们要增加或者修改其他的发消息方式 我们可以不用管这个的homecontroller

    因为我们使用了接口 接口目的就是为了解耦

    比如我们加一个PhoneTool 那么我们只加就行了 并且实现这个Itool 然后我们只需要改变Startup的configureservice

    services.AddSingleton<ITool, PhoneTool>();

    namespace NLogDemo2.Cores
    {
        public interface ITool
        {
            void Send(string message);
        }
    }
    
    
    namespace NLogDemo2.Cores
    {
        public class EmailTool: ITool
        {
            public void Send(string message)
            {
                Console.Write("发邮件:" + message);
            }
        }
    }
    
    
     public void ConfigureServices(IServiceCollection services)
            {
                services.AddSingleton<ITool, EmailTool>();
                services.AddMvc();
            }
    
     public class HomeController : Controller
        {
            private ITool _tool;
            private ILogger<HomeController> _logger;
            public HomeController(ILogger<HomeController> logger,ITool tool)
            {
                _tool = tool;
                _logger = logger;
            }
    public IActionResult Index() { //以前需要new的 //var tool = new EmailTool(); //tool.Send("xxx"); _tool.Send("sdfdsfdsf"); }
  • 相关阅读:
    LoadRunner检查点
    LoadRunner性能测试执行过程的问题
    深入理解Loadrunner中的Browser Emulation
    JMeter性能监测插件介绍(三)
    Jmeter分布式测试搭建(二)
    Jmeter测试环境搭建(一)
    loadrunner中lr_save_searched_string函数的使用
    C语言字符串操作常用库函数
    LoadRunner中截取字符串
    LoadRunner常用事务判断
  • 原文地址:https://www.cnblogs.com/zhangzhiping35/p/11058761.html
Copyright © 2011-2022 走看看