我看不出控制反转在面向过程语言之外有任何意义。已经有很多解释放弃在过程式语言中的控制(事件编程就是其中之一),而纯函数式语言不需要像控制反转这样的概念,因为它们具有高阶函数。我冒昧地完全重写了这个页面,因为先前的内容完全被无意义的“面向对象”废话占领了……
此外,在文章中,Martin Fowler详细阐述了IoC,他只处理面向对象的例子。
那么,IoC是专属于面向对象的概念吗?它到底是什么?
对我来说,控制反转(IoC)试图将函数转化为数据,但受到大多数面向对象语言的限制,并尝试将这些函数作为数据作为参数传递给其他函数。这不是IoC的唯一部分,但其中有一些。
还有工厂设计模式,在传递之前构建和配置对象树。
对我来说,IoC是一个纯粹的面向对象概念。
你的答案是什么?