IOC探讨一 – 概念

IOC探讨一 – 概念

一、什么是IOC?

控制反转(Inversion of Control),是一种设计思想。体现了“好莱坞法则”(Hollywood Principle),不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)

实现IOC的技术手段主要包括:

(1)DI,Dependency Injection,依赖注入;

(2)DL,Dependency Lookup,依赖查找。

其中DL包括:

(1)DP,Dependency Pull,依赖拖拽;

(2)CDL,Contextualized Dependency Lookup,上下文依赖查找。

二、为什么要用IOC?

(1)对象的实例化复杂,实例化一个对象时往往需要同时实例化多个对象,令人头疼;

(2)IOC可以协助托管对象的实例化和释放,应用程序只需要关心消费即可;

(3)IOC便于解耦,由容器维护接口的具体对象实现。

三、IOC能做什么?

(1)解耦程序,方便测试,利于功能复用;

(2)可以让程序的体系结构变得非常灵活;

(3)便于数据的透传。

四、DI怎么实现(C#/dotnet core)?

(1)Constructor Injection,构造器注入

(2)Setter Injection

参考:

[1] 浅谈IOC–说清楚IOC是什么 ,ivan820819,CSDN,2018-03

[2] 什么是IOC(控制反转)、DI(依赖注入) ,Ming339456,CSDN,2018-08