【问题标题】:Understanding delegation pattern in java了解java中的委托模式
【发布时间】:2023-03-12 15:34:01
【问题描述】:

我从这里学习委托模式:http://en.wikipedia.org/wiki/Delegation_pattern 这让我很困惑:

  1. 委托模式 == 方法重载/覆盖
  2. 委托模式 == 多态性

以上是否属实?

【问题讨论】:

  • 摘自文章:“委派只是将职责转嫁给某人/其他人。”虽然它可以用来实现重载或多态,但这并不一定要发生。这确实是一种单独的技术。
  • 据我了解,这篇文章没有做出您列出的两种陈述中的任何一种。

标签: java design-patterns delegation


【解决方案1】:

不是真的。 在一个简单的 java 示例中,对象 A 有一个方法可以转过来并调用对象 B 上的一个方法。所以你可以说 A 委托给了 B。

在一个复杂的示例中,对象 B 实现了接口 A,但您可以要求接口 A 执行一个方法,它会告诉 B 执行该方法。

这些都与多态性或覆盖没有太大关系。

【讨论】:

    【解决方案2】:

    没有一个是真的。假设 A 将某事委托给 B,那么委托只是调用另一个对象 B(对象 A 已在内部声明)的方法,而不是由对象 A 自己执行此任务。

    是的,A 和 B 的方法名称通常相同(很可能只是出于常识),但它既不是重载也不是多态。

    (此外,委托可能更复杂。例如,对象A在委托之前选择一个委托(B,C或D,...)。等等。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多