« 上一篇下一篇 »

控制反转

控制反转,简言之就是代码的控制器交由系统控制,而不是在代码内部,通过IoC,消除组件或者模块间的直接依赖,使得软件开发系统更具有柔性和扩展性。控制反转的典型应用体现在框架系统的设计上,是框架系统的基本特征,不管是.NET Framework抑或是Java Framework都是建立在控制反转的思想基础之上。

控制反转很多时候被看做是依赖倒置原则的一个同义词,其概念产生的背景大概来源于框架系统的设计,如:.NET Framework就是一个庞大的框架系统。在.NET Framework大平台上可以很容易地构建Silverlight应用、ASP.NET.Web

应用、Window Azure Cloud或者Windows Phone应用。很多时候,基于.NET Framework构建自定义系统的方式就是对.NET Framework本身的扩展,调用框架提供的基础API,扩展自定义的系统功能和行为。然而,无论如何新建或者扩展自定义功能,代码执行的最终控制权还是回到框架中执行,再交回应用程序。记得黄忠诚先生曾经在Object Builder Application  Block一文中给出了一个既形象又贴切例子,就是在Window From应用程序中,当Application.Run调用之后,程序的控制权交由Windows Froms Framework上。所以,控制反转更强调控制权的反转,体现了控制流程的依赖倒置,所以从这个意义上来说,控制反转是依赖倒置的特例。

所以控制反转不仅是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 控制反转还有一个名字叫做依赖注入简称DI。

« 上一篇下一篇 »