调度函数调用Java中具有相同接口的其他类

时间:2012-10-29 17:26:26

标签: java

我有两个类A和B,它们都是接口Z.现在,接口Z的某些函数(Z.f1,Z.f2,Z.f3,...)的A类应该只作为调度程序使用B类的一个对象。

public class A implements Z{

private B b;  //instantiated in constructor of A

@Override
public String f1(int p)
{
  return b.f1(p);
}
...

在Java中有没有通用的方法呢?

2 个答案:

答案 0 :(得分:0)

如果您的意思是在接口f1()中声明了方法Z,那么您要实现的模式称为包装器或装饰器。

在java中,您可以使用引入java 1.4的动态代理创建泛型实现。

答案 1 :(得分:0)

我不这么认为。但有时您的IDE可以帮助创建委派调用的所有简单方法。有时您可以找到第三部分类来完成此任务。例如,Guava(http://code.google.com/p/guava-libraries/)有大量的ForwardingXXX类,默认情况下,它们将所有内容委托给其他人。例如,ForwardingMap将所有调用委托给另一个Map。您需要覆盖您不想委派的方法。