这是一篇来自Ruby社区的文章,主要介绍DCI如何推动面向对象的发展,当然这也是Ruby的一个特点,而Scala则在并发异步以及函数编程上有其特点。RubySource | Data Context Interaction: The Evolution of the Object Oriented ParadigmRubySource
文章说:面向对象非常擅长显式表达状态,类 字段和属性这些都是用来定义状态的强大工具。(banq注:场景 事件和状态可以认为一个目标模板)。
对象的状态着重于两个方面,一个是编译时期,一个运行时期,在编译时期我们能看到对象的类定义;而在运行时刻我们可以调用对象实例的字段。
对象的行为是围绕本地状态的,不包括那些与外部协调等行为,这些本地行为只围绕对象自己内部状态进行。
但是OO弱点在于无法表达与外部协调交互collaborations 。
看如下两个案例用例(最后两张图),分别表达A B C D四个对象之间的相互调用。第一张图表示在传统OO中,我们可能将这些相互协调调用的方法专门当前类中,导致A B C D很多方法,这样带来问题看下篇:
[该贴被banq于2012-08-31 15:58修改过]