ASP.NET Core借鉴控制反转的思想设计出了依赖注入框架,带给应用程序最大的一个好处就是“解耦”。
实际上我们开发的ASP.NET Core应用程序,本质上就是通过各个类的对象相互协作而构建的,某些复杂的功能也是通过调用各个类的对象,从而组成的流程体系,比如你点击付款功能,这背后可能就有:订单类、商品类、支付类等各个类协作实现功能。在这种背景下每个类都会直接或间接的产生依赖的关系,通过依赖注入可以实现一定程度的“解耦”,从而使应用程序能够更好的适应需求的变化。
主动到被动
ASP.NET Core这种控制反转的形式,比较类似于我们现在社会上企业的一种用人体制。通常企业都是主动发布招聘信息,并且直接和员工签署合同。随着企业的长期经营,企业发现这种传统的用人方式存在某些问题:1.岗位需求量大了后,如果每名员工都是企业直属的,将会增加很大的开销;2.某些岗位的流动性大,很会因为某些因素导致人员大量流失,会经常出现招聘不及时,无法填补工作空缺,或工作新旧交接出现问题。
“资本终归是资本”,企业为了追求利益最大化,采取了一种新的用人制度,那就是我们通常说的“外包”,将员工的招聘交给第三方劳务公司,企业不在负责招聘只用专注业务和生产,上面的问题企业都不在担心,第三方劳务公司会源源不断的为企业主动提供员工。
这以社会现象其实就和我们ASP.NET Core这种控制反转有着异曲同工之妙,只不过企业是在损人利己,而对框架而言是在追求更好的程序设计。
公司不在主动招聘员工,而是告知用人需求给第三方劳务公司后,由他们主动提供员工,这个现象就类似我们ASP.NET Core控制反转的概念一样,应用程序无需自己创建对象,只用将对象的需求告诉给框架,在使用时候框架将会主动提供。
5.结语