什么是方法调度?我可以找到几个具体的例子,但我无法找到方法分派的抽象定义。有人愿意冒险吗?
首先我们来说一下什么是消息和方法:
A message 是可以从一个对象发送到另一个对象的名称,可能带有其他对象作为参数。例如在
account withdraw: 100
消息是
withdraw:
(Smalltalk 语法。)(其他语言可能会写 account.withdraw(100)
。)接收消息的对象(在本例中为 account
)称为 接收者。方法是一种可以调用以响应消息的实现。
这些想法在多种面向对象语言中共享,有时以不同的名称命名。例如,C++ 将消息称为“虚拟成员函数”。
现在:
方法调度是用于决定应调用哪个方法来响应消息的算法。不同语言的算法差异很大:
slot中找到,要么可能在克隆对象的原型中找到。