我看到很多用于.Net和Java的IoC框架.有谁知道为什么没有Smalltalk的等效框架.这是一个哲学问题,而不是其他任何问题.我想知道Smalltalk的做法是否有一些事情可以排除拥有IoC框架的必要性.
MVC是在Smalltalk上发明的,可以说是最初的Inversion of Control框架.虽然比java对应物更轻巧,但它具有保存数据的模型的基本概念,一个视图呈现数据以响应从控制器传播的事件.
不那么轻率,Java实际上需要大量的框架支持才能完成Web应用程序,而无需过多的样板代码.Smalltalk支持编程习惯,例如continuation,它允许作者假装他们并没有真正编写事件驱动的代码. Seaside就是这样的,它给IoC带来了一些更灵活的开发范例.
编辑:MVC是Smalltalk中UI的框架(可以说它不是真正的框架,但是类库已经内置了对它的支持).它具有控制属性的反转,因为视图和模型响应控制器调度的事件 - 不要打电话给我们,我们称之为属性.控制反转是框架内的一种设计模式,用于减少Java应用程序中广泛样板的需求.在应用程序框架的某些定义中,控制反转是主要属性,被视为区分框架和库.
函数是smalltalk中的一等公民,所以没有框架就很容易拥有IoC.