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
发表回复