【发布时间】:2011-04-03 11:59:55
【问题描述】:
消息传递和方法调用之间有区别吗,或者它们可以被认为是等价的吗?这可能是特定于语言的;许多语言不支持消息传递(尽管我能想到的所有语言都支持方法),而那些支持的语言可以有完全不同的实现。此外,根据语言(C 与 Java 与 Lisp 与您最喜欢的语言)的不同,方法调用也存在很大差异。我相信这是与语言无关的。使用传递的方法可以做什么,而调用的方法无法做到这一点,反之亦然(在您最喜欢的语言中)?
【问题讨论】:
-
你的意思是“你能用传递的-消息做什么,你不能做......”?如果是这样,我会为您更正。
-
面向对象编程的最初概念是“消息”在对象之间传递。如果你想
Object2执行一些操作,你可以向它传递一条消息,说“doSomeAction”。在编程语言中,它的语法变成了Object2.SomeAction(...);然后它被称为“调用方法”,而不是“传递消息”。几乎所有语言的一个缺点是Object2.SomeAction(...)既是同步的,又是几乎总是局限于同一个线程或进程。
标签: language-agnostic message-passing method-invocation