如何使实现多个接口的Java类更易于阅读

如何使实现多个接口的Java类更易于阅读,java,coding-style,multiple-inheritance,Java,Coding Style,Multiple Inheritance,例如,在下面的代码中,A实现了接口I1、I2、。。。在中,并重写其方法。但是我发现在一个例子中,有点难理解,并且理解哪些方法来自于哪些接口。有没有更好的方法使代码更易于阅读 class A implements I1, I2, ..., In { @Override void methoda_in_I1() ... @Override void methodb_in_I1() ... @Override void methoda_in_I2() ...

例如,在下面的代码中,A实现了接口I1、I2、。。。在中,并重写其方法。但是我发现在一个例子中,有点难理解,并且理解哪些方法来自于哪些接口。有没有更好的方法使代码更易于阅读

class A implements I1, I2, ..., In {

   @Override
   void methoda_in_I1() ...

   @Override
   void methodb_in_I1() ...

   @Override
   void methoda_in_I2() ...

   @Override
   void methodb_in_I2() ...

   ...

   @Override
   void methoda_in_In() ...

   @Override
   void methodb_in_In() ...

}

解决这个问题没有真正简单的方法。我能想到的最好方法是使用注释来标识您要覆盖的接口,如下所示:

@Override//Interface A
public void methodFromA() {
    ...
}

@Override//Interface B
public void methodFromB() {
    ...
}

不要按接口对方法进行分组,而是使用一种简单的排序技术:字母表

我的意思是,按字母顺序列出类中的方法

以英语为母语的人理解字母表,字母表是以英语为母语的人的“自然”排序顺序。下面是一个比较容易理解的例子,一个根据地址列出联系人的电话簿,或者一个按姓名字母顺序列出联系人的电话簿


如果您使用的是eclipse,请单击方法名称并点击alt+shift+J以获得一条自动注释,该注释将引用正在被覆盖的接口(或基类)方法。

u如果您正在创建自己的接口,则可以将InetrfaceName与方法一起使用。但是如果你使用bulin,那么你需要面对这个问题,bcos我认为整个架构不会因为这个问题而改变,这里有注释,用它们来表示方法的inetrface名称。@JoeC我认为没有办法。@JoeC你可以使用超类的javadoc。为什么你需要知道哪个方法来自哪个接口?如果两个接口有一个具有相同签名的方法怎么办?如果只是出于导航的原因,那么任何现代IDE都将提供一种链接到方法的超级方法的方法。例如,Netbeans将在编辑器右侧带@Override的行旁边显示一个图标,看起来像一个带“I”的圆圈