【.NET】依赖注入浅显解释
依赖注入 是一种设计模式,它将对象的依赖(例如服务或组件)从对象内部解耦出来,由外部提供。在 C# 中,通常通过 构造函数注入、属性注入 或 方法注入 来实现依赖注入。常用的 DI 容器如 Autofac 和 Microsoft.Extensions.DependencyInjection。
大白话: 假如一个类需要另外独立的功能,比如发送邮件,正常情况在这个类中创建发送邮件的类(也可以说依赖,主要是强调两者关系)
public class OrderService
{private readonly Logger _logger = new Logger(); // 直接创建依赖
}
但是这样操作耦合性高,比如现在想修改 Logger(),改成FileLogger,那么就需要修改OrderService。
此时使用依赖注入,如下代码
public class OrderService
{private readonly ILogger _logger;public OrderService(ILogger logger){_logger = logger;}
}
// 使用
class Program
{static void Main(){ILogger logger = new ConsoleLogger(); //如果想改成其他的类,直接在这里替换掉就可以,无需改动OrderService 内部代码OrderService service = new OrderService(logger);service.CreateOrder("123");}
}
将logger作为一个参数传过来,那么无论logger怎么改动,都不需要改OrderService(耦合度低),这就是构造函数注入。属性注入(定义一个参数)和方法注入(作为方法参数传进来)类似。
完结撒花~
