翼度科技»论坛 编程开发 .net 查看内容

netcore控制反转

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
简介

IoC
  1.         Ioc控制反转,是一种设计模式和原则,旨在解耦组件之间的依赖关系,并将对象的创建和管理委托外部容器。是面向编程中一种重要的概念,用于提高代码的可维护性.
  2.         核心思想:通过将控制权从高层转移到底层模块,实现对依赖关系的控制反转,传统上,一个对象通常负责自己的依赖项创建和管理 ,这种依赖关系通常以硬编码方式实现,而在Ioc中,这些责任由一个外部的Ioc容器来承担,它负责实例化对象,解决依赖关系并提供所需的实例。
复制代码
Ioc优点
  1.         松耦合性:通过IoC容器管理依赖关系,组件之间的耦合度降低,使得代码更加灵活,可维护和可扩展。
  2.         可测试性:通过IoC容器可以轻松地进行依赖注入,从而使单元测试更容易实现,可以通过模拟或替换依赖项来进行测试,而无需实际创建复杂的依赖关系。
  3.         可扩展性:当需要添加、替换或调整组件时,IoC容器可以通过配置或修改依赖项的注册来实现,而不需要更改依赖项组件的代码。
  4. 在NetCore中,使用依赖注入(Dependency Inject,DI)容器来实现控制反转,依赖注入是IoC的一种具体实现方式,通过对象的依赖关系委托给容器来管理和解析。
复制代码
简单示例

接口IMyservice
  1. public interface IMyServices
  2.     {
  3.         int Add(int i, int j);
  4.     }
复制代码
实现接口类
  1. public class MyService : IMyServices
  2.     {
  3.         public int Add(int i, int j)
  4.         {
  5.             return i + j;
  6.         }
  7.     }
复制代码
配置依赖注入在Startup.cs中
  1. builder.Services.AddScoped<IMyServices, MyService>();
复制代码
在控制器中注入依赖项
  1. private readonly IMyServices _myServices;
  2.         public IoCDemoController(IMyServices myServices)
  3.         {
  4.             _myServices = myServices;
  5.         }
  6.         [HttpGet]
  7.         public IActionResult Get(int a, int b)
  8.         {
  9.             return Ok(new { data = _myServices.Add(a, b) });
  10.         }
复制代码
来源:https://www.cnblogs.com/xiaoxi888/archive/2023/07/19/17564963.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具