IOC探讨二 – 场景

IOC探讨二 - 场景

一、作用域变量

(1)介绍

在网站/API开发时,有记录操作日志、异常日志等需求。这时需要统一的记录点,通常日志记录点会与方法分开,比如dotnet core用中间件来记录日志,但此时常常难以取得方法中的一些参数。系统拥有三层架构,但接口的参数往往难以透传到业务层/数据访问层等,中间件也难以取得对应的参数。

使用DI,可以通过定义作用域,以构造函数注入的方式,将数据透传到需要的任意代码位置,非常类似内存缓存,而且由DI来控制对象的释放、创建,就不需要像控制内存缓存那样,还需要考虑释放对象的时机。

(2)代码实例(dotnet core)

二、实例化复杂构造函数对象

(1)介绍

实际业务编码过程中,可能存在一些构造函数包含多个对象参数的类对象,传统方式在实例化该对象前,需要预先实例化各个参数对象,才能实例化该对象。

引入DI,则可以直接方便快捷地实例化对象,大大降低代码的复杂度,从某种程度上来说,使代码更为简约优美。

(2)代码实例(dotnet core)