当前位置: 首页 > 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.hkea.cn/news/14357947/

相关文章:

  • 织梦网站手机版端设置网站根目录在哪儿
  • 网站推广建设阶段wordpress自建主题
  • 汉鼎中国 网站建设余姚 做网站
  • 如何查企业做网站是否备案过视频发布到哪些平台可以赚钱
  • 大庆免费网站建设公司网站建设布局
  • 织梦网站熊掌号改造怎么做wordpress 幻灯片标签
  • 五星花园网站建设兼职海口网站制作企业
  • 免费的黄冈网站有哪些建筑设计方案
  • 百度做的网站国外可以打开吗中国建筑工程有限公司
  • 京东的网站规划与建设网站建设 骏域网络建设专家广州
  • 燕郊的大型网站建设制作一款app软件大概需要多少费用
  • 做个网站做什么呢wordpress 文章加图片
  • 广州电子商务网站建设费用惠州公司网站建设价格
  • 培训网站设计师东莞网站建设 织梦
  • 中牟高端网站建设天猫网页版
  • wordpress图片间隔东莞seo 公司
  • 灯罩技术支持东莞网站建设个人网站程序下载
  • 烟台网站排名优化公司哪家好wordpress 总数 函数
  • 名师工作室网站建设建议宁阳网页设计
  • 西安北郊网站维护运营好设计购物网站
  • 移动端网站建设的方案建官网公司
  • 成都哪家做网站公司好黄页88网站
  • 腾讯云免费网站建设2018网站建设合同范本
  • 舟山市定海区建设规划局网站商业空间
  • 点对点视频网站开发房地产开发资质
  • 网站开发教程 视频 ssh数据库和网站开发
  • 500云空间网站无锡谷歌推广
  • 做网站接活犯法吗介绍一个电影的网站模板下载
  • 常熟网站制作设计wordpress美化登录
  • c语言做网站吗黄石本土做网站的公司