了解java中的委托模式

时间:2012-01-12 06:37:56

标签: java design-patterns delegation

我从这里学习代表团模式:http://en.wikipedia.org/wiki/Delegation_pattern  它让我困惑如下:

  1. 委托模式==方法重载/覆盖
  2. 委托模式==多态性
  3. 上述任何一项是真的吗?

2 个答案:

答案 0 :(得分:2)

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

在一个复杂的例子中,Object B实现了接口A,但你可以让接口A执行一个方法,它会告诉B执行该方法。

这些都与多态或覆盖无关。

答案 1 :(得分:0)

它们都不是真的。假设,A委托给B,然后委托只是调用另一个对象B的方法(对象A已在内部声明),而不是由对象A自己执行此任务。

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

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