Java (UML) 中的术语调用、委托和调度之间有什么区别?



那么问题在Java(UML)中调用,委托和调度术语之间的区别是什么。当我阅读核心 J2EE 模式时,作者使用这些术语。这就是为什么我想知道它们之间的确切区别。

据我所知,UML 没有具体提供上述 3 个术语的定义。我对它们的理解是这样的:

  • "调用"只是将消息从对象 A 发送到对象 B(调用方法)。没有说明该消息的目的
  • "委托"是指对象 A 使用对象 B 履行其某些职责。

像这样:

class FlyingCar extends Car {
  private Car regularCarDelegate;
  void takeOff() {
    // logic
  }
  @Override void accelerate() {
    // delegate to the regular car's accelerate()
    regularCarDelegate.accelerate();
  }
}
  • "调度"通常具有并发含义。这是当您的代码在忙于执行其他事情时调度异步工作线程来完成某些任务时:

void updateContactList() {
  // dispatch
  Future<ContactList> contacts = backend.fetchContacts();
  // draw the spinner animation, disable some UI buttons etc.
}