1.很多朋友不知道什么是依赖注入,接下来我用比较通俗易懂的话语 来帮助大家理解
依赖注入(Dependency Injection,简称DI)是一种设计模式,用于减少组件之间的耦合度。它的核心思想是,将组件之间的依赖关系从组件内部抽离出来,通过外部容器来管理这些依赖关系,从而实现组件之间的松耦合。
举个例子,假设我们有一个类A,它依赖于另一个类B。在不使用依赖注入的情况下,我们需要在类A中创建一个实例化对象B,并在类A中直接调用B的方法。但是,如果我们使用依赖注入,我们可以将类B的实例化对象交给外部容器管理,并将它注入到类A中,从而实现解耦。
依赖注入可以提高代码的可维护性、可测试性和可扩展性。它是现代软件开发中非常重要的一个概念。
2. 上面看不懂没关系,接下来我会通过 商品显示案例 进行演示,希望大家都可以自己敲一遍,以便更好的理解依赖注入设计理念
2.1 首先先打开vs编辑器 创建一个.net Core项目文件
2.2 创建成功后 项目结构如下
2.3 现在大多数设计模式已经是面向接口编程,所以在Models文件夹下创建一个IProductService接口
因为只是测试,所以就简单给类定义三个属性就行
2.4 以上步骤完成后,这时我们再次创建一个类,来实现IProductService这个接口并重写接口里面的所有方法
2.5 第五步 这是依赖注入最关键的一步,进行依赖关系配置(依赖注入的精髓就在于不需要自己手动的去实例化对象,而是交给容器底层去帮我们实例化)
这里通过Services.AddTransient方法对依赖关系进行配置将IProductService接口和实现它的类ProductService产生关联,其实还可以通过AddSingleton以及AddScoped方法来进行依赖关系配置,但是三者生命周期不同,具体详情可以查看下面的截图报表
2.6 接下来我们来到Home控制器 进行依赖注入(依赖注入通常是在类中构造函数中进行)
2.7 依赖注入成功后就可以使用 Product类中所有定义好的方法,此时_productService属性指向的就是Product类的对象,我们通过_productService属性来调用GetProducts方法来获取所有商品数据并渲染到相应的视图文件