当前位置: 首页 > news >正文

【.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(耦合度低),这就是构造函数注入。属性注入(定义一个参数)和方法注入(作为方法参数传进来)类似。

完结撒花~

http://www.dtcms.com/a/553990.html

相关文章:

  • IDEA连接MySQL服务器数据库指南
  • 设计模式——builder生成器模式
  • 政务公开与网站建设工作总结存在问题和困难小程序装修页面设计
  • 厦门网站网站建设php wordpress 模版
  • Python爬虫---中国大学MOOC爬取数据(文中有
  • Nginx 从零到精通 - 最详细的循序渐进教程
  • Rust专项——迭代器高级用法:flat_map、fold、并行迭代与性能优化
  • 阿里云wordpress建站找做网站的公司
  • 做招聘网站赚钱吗用c 做网站
  • kafka添加压缩配置后失败
  • 深入理解网络层:互联网的 “交通指挥中心“ 与核心技术解析
  • webrtc代码走读(十三)-QOS-帧率调控机制
  • 【机器学习10】项目生命周期、偏斜类别评估、决策树
  • Linux驱动开发与Android驱动开发
  • 在Ubuntu云服务器上安装宝塔面板的完整指南
  • 网站的运营维护南京h5网站开发
  • 揭阳高端网站建设价格一起做业官方网站
  • 机器人控制基础:伺服驱动器的泄放电阻
  • 北大上海AiLab具身导航最新基准测试!NavSpace: 导航智能体如何遵循空间智能指令
  • 医械车间安灯呼叫系统如何通过分级通知提升响应效率?
  • Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用
  • JavaScript 数组基础
  • 厦门双瑞高磁网站是谁做的线上设计师网站
  • 电商数据网站有哪些国内外贸网站建设
  • 前端摄像头到远端平台的实现过程
  • C++中堆和栈的概念
  • 东莞网站建设网站建设多少钱html5做网页
  • 【BuildFlow 筑流】PDF 文档结构与图形基础
  • Z400重力仪调平操作指南
  • 【Algorithm】Day-10