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

可以免费下源码的网站品牌推广方式

可以免费下源码的网站,品牌推广方式,做淘宝网站用什么软件有哪些内容,邯郸外贸网站建设公司DI(依赖注入):DI(Dependency Injection)是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器,使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入…
  • DI(依赖注入):DI(Dependency Injection)是一种实现松耦合和可测试性的软件设计模式。它的核心思想是将依赖关系的创建与管理交给外部容器,使得对象之间只依赖于接口而不直接依赖于具体实现类。通过依赖注入,可以降低代码的耦合度,提高代码的重用性和可测试性。

  • DIP(依赖倒置原则):DIP(Dependency Inversion Principle)是SOLID设计原则中的一条原则,指导了代码的依赖关系设计。它的核心思想是高层模块(例如业务逻辑)不应该依赖于低层模块(例如具体实现类),而是应该依赖于抽象(接口或抽象类)。通过依赖倒置原则,可以使得代码更加灵活和可扩展。

  • IOC(控制反转):IOC(Inversion 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.AddScoped<ICourseService, CourseService>();  // 注册抽象和具体普通类之间的关系
serviceDescriptors.AddScoped<IStudentService, StudentService>();ServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
var studentService1 = serviceProvider.GetService(typeof(IStudentService));// Autofac
ContainerBuilder containerBuilder = new ContainerBuilder(); // 得到容器的建造者containerBuilder.RegisterType<CourseService>().As<ICourseService>(); // 配置抽象与具体类之间的关系
containerBuilder.RegisterType<StudentService>().As<IStudentService>();IContainer container = containerBuilder.Build(); // Build一下得到容器实例
var studentService2 = container.Resolve<IStudentService>();// 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.Resolve<IStudentService>();

输出结果:
在这里插入图片描述

http://www.tj-hxxt.cn/news/126953.html

相关文章:

  • 武汉市哪里做公司企业网站宁波厂家关键词优化
  • 申请一个网站需要怎么做搜索引擎优化自然排名的优点
  • 政府网站建设工作的报告广州网站优化运营
  • 电大考试亿唐网不做网站做品牌网络营销ppt怎么做
  • 能免费做网站吗中国2022年重大新闻
  • 爱站网关键词密度查询快手流量推广免费网站
  • 网站如何实现临时聊天浙江网站建设平台
  • 贵州微网站建设公司互联网营销师报名入口
  • 建立一个企业网站搜索引擎快速优化排名
  • 自己怎么做网站游戏百度搜索引擎优化案例
  • 哪里有免费网站空间申请seo关键词优化排名推广
  • 互联网有多少网站谷歌搜索引擎免费入口
  • 球赛投注网站开发解析域名网站
  • 商城购物网站建设轻松seo优化排名
  • 用什么软件做网站广州疫情最新情况
  • 网站banner图自适应百度指数官方网站
  • 成都住房和城乡建设部网站查询直销的八大课程
  • cn 域名网站微博关键词排名优化
  • 怎样设计静态网站页面宁波seo在线优化公司
  • 网站建设难点百度平台联系方式
  • 企业网站维护兼职推广app赚佣金平台有哪些
  • 南京本地网站建设俄罗斯搜索引擎yandex
  • 琼海网站建设公司付费推广方式有哪些
  • 科技医疗网站建设广东seo网络培训
  • 常州企业网站建设如何进行网站制作
  • 烟台网站制作这西安百度网站排名优化
  • 日本人做运动的网站餐饮营销方案
  • wordpress 调用特色图片seo优化的主要任务包括
  • wordpress汉化安装seo是干什么的
  • 网站建设文化传播有限公司网络推广需要什么