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

02_03_依赖注入与控制反转

02_03_依赖注入与控制反转

 

服务注册、管道中间件配置部分

mvc

Grpc

不同的服务和管道中间件就会是不同的应用

一切的基础就是从添加服务到容器部分开始的

是asp.netcore中最核心最基础的部分

基础的核心组件,依赖注入系统

主要提供两个核心功能:

1、注册类型(高大上的名称:服务)

2、解析实例

类型A想要使用类型B,都要注册到系统中

类型A通过依赖注入系统获取使用类型B的实例,不需要自己new一个出来

不是主动的去拿,是以注入的方式获取的

 

何为注入?

先了解控制反转,依赖注入里面有一个叫IOC容器的东西,IOC就是控制反转的简称

所有注册的类型和由依赖注入系统创建的实例,都会保存到IOC容器里

为什么要控制反转呢?

通过第三方实现组件的装配和管理

场景:

4岁的儿童--》贪吃,自己去做饭、冰箱拿东西,不可思议,安全隐患

就像自己new一个对象出来,自己丰衣足食

其实只要陈述一下自己的需求就好了,我饿了,甚至不需要告诉想要吃什么

儿童我饿了---》父母--》做好食物(依赖)---》喂到嘴里去(注入)

 

第一种,主动去拿,自己动手

第二种,被动获取

对食物的控制权,反转了

 

我是对食物的需求者,,变成了父母做好给他

不需要关心食物从哪里来,你只需要知道你需要的食物给你了

 

代码上

就是对组件对象的控制权

以前自己new一个

现在找IOC容器第三方拿给你

应用程序本身不负责依赖对象的创建和维护,而是交给第三方负责

控制器从应用程序,转移到了第三方,第三方不在我们的控制范围之内

控制权不在我们自己手中,就被所谓的反转了

 

控制反转和依赖注入又有什么关系呢?

依赖注入是对控制反转的一种实现,依赖注入是IOC用来反转依赖的一种手段

 食物是小孩依赖的东西,父母喂给他嘴里去,就是注入

从自己动手,到被动入口,懒到极致

依赖注入不是目的,只是实现控制反转的方式

 

使用依赖注入的目的是什么呢?

管理应用中复杂的依赖关系

为什么不去冰箱里自己去拿呢?在一个庞大的应用中我们的对象成千上万,我们的对象成百上千,

都想冰箱里面的东西,都是我们所依赖的东西

每个开发者都不可能了解项目的全貌,就有可能拿到不属于他的东西,自己随意的new来new去,很不优雅

new错了,也不灵活

类型A依赖类型B,就有个强依赖关系,耦合就很紧密

B有依赖更多其它的类,很多层的依赖,复杂的管理

不需要管理复杂的依赖了,你想要什么我都拿给你

 

 

一种反转流、依赖和接口的方式,它吧传统上由程序代码直接操控的对象的调用权交给第三方,通过第三方来实现对象组件的装配和管理。

第三方就是===》IOC容器

场景里面,谁是IOC容器?

冰箱?父母?

父母只是扮演依赖注入系统里面的一些辅助方法,类型注册、实例解析

冰箱才是IOC容器,是依赖注入系统里面的核心对象

 

依赖注入系统包括了IOC容器

 

冰箱里面的东西,都是父母买来放进去的,同样需要父母拿出来加工食物

IOC容器才是真正存放食物的地方, 存放对象的地方

也是保存到冰箱里面了

注册服务、类型,是注册到容器里面了

对象被创建出来,也是被保存到容器里面了

拿从冰箱拿,放也放到冰箱

 

IOC容器是工厂模式的一种升华

工厂模式是用来创造对象的

注册类型在工厂,创建对象也在工厂,

工厂是需要你自己指定,IOC是自动的智能工厂

 

Core的IOC容器还有一个名字===》服务提供者,ServicePrivoder 

.Net环境里,所有注册到IOC容器的类型都被称为服务

Core里面的组件,大多都需要从容器里面获取它所需要的服务

真个asp.net core框架都是建立在IOC容器之上的,最基本的编程模式

 

http://www.jsqmd.com/news/293474/

相关文章:

  • 从帧率到时延:YOLOv8多维性能评估方法与实战分析
  • MATLAB仿真 delta并联机器人 simulink/simscape仿真 正逆运动学
  • 互联网大厂Java求职面试实战:核心技术与AI应用全景解析
  • 当中国萌娃吟诗作对时 外国小朋友竟在背这些?!
  • 讲讲龙腾造价的信誉度高吗?从多方面判断其信誉情况
  • 2026年信誉好的黄精茶排行榜,创新黄精茶怎么收费?
  • 说说南方网通市场口碑怎么样,了解它在各大行业的排名
  • 分析南方网通,性价比好不好,排名情况抢先看
  • 2026年东莞红外碳硫分析仪制造商Top10,无锡钱荣分析仪器上榜了吗?
  • 2026年真空波纹管加工厂选哪家好,优质真空波纹管厂家推荐
  • 辨析短视频代运营服务公司哪家可靠,给你实用的选择建议
  • 2026年口碑好的无缝钢管公司排名,东坤伟业表现出色
  • 2026年国内热门的双相钢法兰批发厂家怎么选择,双相钢法兰/非标法兰/高温合金法兰/不锈钢法兰,双相钢法兰企业排行
  • 装修公司推荐,想找信誉好的装修机构,昆明欢乐佳园装饰值得选吗?
  • 亲测好用!8款AI论文写作软件测评,本科生毕业论文必备
  • 2007-2020年税收调查企业匹配专利数据
  • 2013-2024年地级市环保部门政务微信数据
  • Oracle 19c入门学习教程,从入门到精通,Oracle 表分区与索引分区 —— 语法详解与综合实践(12)
  • Vue 中 keep-alive 组件的生命周期钩子
  • 实用软件-杀软清流!火绒6.0:零广告+真免费,附赠9把系统手术刀!
  • CMS站群批量导入WORD到CKEDITOR如何避免卡顿?
  • 芯片制造文档通过CKEDITOR导入WORD为何报错?
  • 机械设计EXCEL表格导入CKEDITOR后如何锁定单元格?
  • 红外碳硫分析仪正规厂家排名,无锡钱荣分析仪器实力凸显
  • 全网最全自考必备AI论文软件TOP9测评
  • 探寻云迹精准客户线索系统,哪个公司口碑好?
  • 互联网产品文档从CONFLUENCE转CKEDITOR为何乱码?
  • 深度测评MBA必备AI论文工具TOP10:开题报告与文献综述全解析
  • 全网口碑好的移动话费充值卡回收平台推荐
  • 【Svelte】本地正常,线上报错的奇怪问题