对依赖注入的理解

依赖注入使用的是控制反转的模式,控制反转简单地说就是:以前由我控制的业务流,现在有人封装好了,我拿来用就可以。不需要我再熟悉业务中的每个类,不需要我来new对象出来。

依赖注入容器好比一个养鸡场,各种服务就是鸡,养鸡场有一个管理员。当我想吃鸡时,只需要管理员给我就可以,不需要我亲自喂鸡、杀鸡、取鸡。

//养鸡场的建立过程
//1、盖养鸡场
var builder = WebApplication.CreateBuilder(args);

//2、往养鸡厂里放鸡
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

//3、雇佣管理员管理
var app = builder.Build();
//吃鸡过程

//1、想吃鸡        
private readonly ILogger<WeatherForecastController> _logger;

//2、管理员送鸡
        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

//3、开吃
_logger.LogInformation("吃鸡");

这种剥夺程序员new权力的举动,降低了代码的耦合性。当“吃鸡”的含义发生变化后,我们吃鸡过程的代码不需要改变,具体业务得看管理员向鸡场放什么鸡了...

posted @ 2023-01-10 07:28  土豆365  阅读(22)  评论(0)    收藏  举报