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

吉林分销网站建设可信网站认证的区别

吉林分销网站建设,可信网站认证的区别,网站建设如何投放广告,企业咨询公司有哪些DI#xff08;依赖注入#xff09;#xff1a;DI#xff08;Dependency Injection#xff09;是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器#xff0c;使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入… DI依赖注入DIDependency Injection是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入可以降低代码的耦合度提高代码的重用性和可测试性。 DIP依赖倒置原则DIPDependency Inversion Principle是SOLID设计原则中的一条原则指导了代码的依赖关系设计。它的核心思想是高层模块例如业务逻辑不应该依赖于低层模块例如具体实现类而是应该依赖于抽象接口或抽象类。通过依赖倒置原则可以使得代码更加灵活和可扩展。 IOC控制反转IOCInversion of Control是一种软件设计思想通过将对象的创建和依赖关系的解析交给外部容器来进行管理。在传统的开发中开发者需要手动创建对象并维护对象之间的依赖关系。而IOC则是通过外部容器负责对象的创建和依赖关系的解析将控制权反转给了外部容器。 IOC容器IOC容器是一个负责管理对象的创建和依赖关系的容器。它接收由开发者配置的对象的依赖关系根据配置创建对象并注入依赖关系。IOC容器负责实例化对象并在需要时将其注入到其他对象中。常见的IOC容器有Autofac、Unity、Ninject等。 简而言之DI是一种设计模式DIP是一种设计原则IOC是一种设计思想而IOC容器是实现IOC思想的具体实现工具。使用IOC容器可以将对象的创建和管理交给容器实现松耦合、可测试和可扩展的代码。 这个是Demo的整体架构 using DI.IService; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace DI.Service {public class CourseService : ICourseService{public CourseService(){Console.WriteLine(${this.GetType().Name}--被构造);}} }using DI.IService; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace DI.Service {public class StudentService : IStudentService{private readonly ICourseService _courseService;public StudentService(ICourseService courseService){_courseService courseService;Console.WriteLine(${this.GetType().Name}--被构造);}} }using Autofac; using DI.IService; using DI.Service; using Microsoft.Extensions.DependencyInjection; using System.Reflection;Console.WriteLine(Hello, World!);// 原始方法 ICourseService courseService new CourseService(); IStudentService studentService new StudentService(courseService);// 内置容器的方法 ServiceCollection serviceDescriptors new ServiceCollection(); // 创建一个容器serviceDescriptors.AddScopedICourseService, CourseService(); // 注册抽象和具体普通类之间的关系 serviceDescriptors.AddScopedIStudentService, StudentService();ServiceProvider serviceProvider serviceDescriptors.BuildServiceProvider(); var studentService1 serviceProvider.GetService(typeof(IStudentService));// Autofac ContainerBuilder containerBuilder new ContainerBuilder(); // 得到容器的建造者containerBuilder.RegisterTypeCourseService().AsICourseService(); // 配置抽象与具体类之间的关系 containerBuilder.RegisterTypeStudentService().AsIStudentService();IContainer container containerBuilder.Build(); // Build一下得到容器实例 var studentService2 container.ResolveIStudentService();// Autofac -- 注册程序集 ContainerBuilder containerBuilder2 new ContainerBuilder(); Assembly interfaceAssembly Assembly.LoadFrom(DI.IService.dll); Assembly serviceAssembly Assembly.LoadFrom(DI.Service.dll); containerBuilder2.RegisterAssemblyTypes(interfaceAssembly, serviceAssembly).AsImplementedInterfaces(); IContainer container1 containerBuilder2.Build(); var studentService3 container1.ResolveIStudentService();输出结果
http://www.tj-hxxt.cn/news/134408.html

相关文章:

  • 海南网站搭建ui设计的定义
  • 长春建站费用国外 素材 网站
  • 设置网站的默认页面昆明几大网站
  • 网站 图文混编西宁网站建设报价cu君博规范
  • 网站建设软硬件平台wordpress怎么装修网页
  • 哪个网站做简历免费下载app与手机网站
  • 评价一个网站的优缺点建设部网站1667号下载
  • 湖州 网站建设公司哪家好做网站项目需要多少钱
  • 常州建网站精湛的网站建设
  • 临沂国际外贸网站建设临平做网站
  • 手机网站要求浦东新区网站建设
  • 什么是网站推广优化php wordpress教程 pdf
  • 聊城建设银行官方网站贵阳监理建设网站
  • 兰州网站排名优化服务房地产建设企业网站
  • 网站开发服务费计入哪个科目wordpress模版下载
  • 私人做网站a做网站 钱
  • 花卉网站建设策划书南宁站建站时间
  • 网站开发人员晋升体系电脑网站上的电影怎么下载
  • 房地产网站建设的目的wordpress删除顶部
  • 自己怎样做网站wordpress jq
  • 公司发布网站需要备案cms网站开发模式
  • 电影网站 模板博客推广那个网站列好
  • 广西企业响应式网站建设设计海南中小企业网站建设
  • 自然资源部网站绿色矿山建设手机网站 兼容
  • 电商网站建设步骤东莞资深网站建设
  • 网友让你建网站做商城上海外贸学院现在是什么学校
  • 电子商务网站 功能广州论坛网站建设
  • vue做网站cms企业门户网站什么意思
  • c 网站开发案例大全做推广网站的文章
  • 做网站标题居中代码深圳网站设计哪里好