控制反转的正式定义是什么?

时间:2012-04-13 04:59:36

标签: design-patterns dependency-injection inversion-of-control object-oriented-analysis

  

可能重复:
  What is Inversion of Control?

我总是听到用模糊的术语描述的控制反转,几乎总是通过例子而不是正式的定义

一方面,我听说它是​​根据对象编程来描述抽象,放弃控制显式实例化一个新对象,它的对象图与请求创建了依赖关系的对象注入运行时条件

然后我听到它在框架编程方面的解释,程序员放弃了控制流程,转而使用扩展点编码(例如事件和回调)

在这两种情况下究竟是什么样的反转,以及它们与IoC的等效例子有什么共同点。我发现找到一个普遍接受的定义非常困难

1 个答案:

答案 0 :(得分:2)

这当然是一个合理的解释:

http://en.wikipedia.org/wiki/Inversion_of_control

我拥有这本书:我推荐它可以很好地涵盖许多设计原则,包括IoC:

Agile Principles, Patterns and Practices in C#: Martin Fowler, Micah Fowler

您可能还会发现这些链接很有用:

两个精辟的“解释”:

  • IoC有时被称为“好莱坞原则”:不要打电话给我们,我们会打电话给你

  • IoC =婚姻; IOC Container = Wife