Smalltalk和IoC

mch*_*ean 9 smalltalk inversion-of-control

我看到很多用于.Net和Java的IoC框架.有谁知道为什么没有Smalltalk的等效框架.这是一个哲学问题,而不是其他任何问题.我想知道Smalltalk的做法是否有一些事情可以排除拥有IoC框架的必要性.

Con*_*lls 6

MVC是在Smalltalk上发明的,可以说是最初的Inversion of Control框架.虽然比java对应物更轻巧,但它具有保存数据的模型的基本概念,一个视图呈现数据以响应从控制器传播的事件.

不那么轻率,Java实际上需要大量的框架支持才能完成Web应用程序,而无需过多的样板代码.Smalltalk支持编程习惯,例如continuation,它允许作者假装他们并没有真正编写事件驱动的代码. Seaside就是这样的,它给IoC带来了一些更灵活的开发范例.

编辑:MVC是Smalltalk中UI的框架(可以说它不是真正的框架,但是类库已经内置了对它的支持).它具有控制属性的反转,因为视图和模型响应控制器调度的事件 - 不要打电话给我们,我们称之为属性.控制反转是框架内的一种设计模式,用于减少Java应用程序中广泛样板的需求.在应用程序框架的某些定义中,控制反转是主要属性,被视为区分框架和库.

  • 语言问题:代理/闭包/回调/ EventHandling在smalltalk平台上非常容易,并且没有标记.因为在其他平台上实现IoC更加困难,并且因为它需要脚手架(框架)代码才能很好地实现,并且一致,所以人们可能期望在Smalltalk中看到对这种脚手架代码的要求.没有任何这样的需要.因为它很容易. (2认同)

Nul*_*303 6

函数是smalltalk中的一等公民,所以没有框架就很容易拥有IoC.