1

我有 2 种不同的方法需要在我的程序中重复,例如方法 A 和方法 B。

程序有的部分需要调用methodA,有的需要调用methodB,有的需要两者都调用。这些方法的实现在整个程序中都是相同的。

我应该如何构建类和方法以减少重复?我首先想到的是我希望 Java 支持多重继承。

我想到的第二件事是将每个方法放在自己的接口中,并让类根据需要实现它们,但是方法的实现在整个程序中完全相同,因此必须在每个方法中定义实现上课听起来不是个好主意。

如果我能说服团队中的其他人,我仅限于 Java 6. 7,因此 Java 8 附带的默认方法实现不是一个选项。

ps 我意识到问题的标题很糟糕,但我想不出一种简单的方法来解释这个问题。有的话请推荐更好的。

4

4 回答 4

2

在我的头顶上:

public interface Foo{  
  public Object processA(Object first);
  public Object processB(Ojbect second);
}

public abstract class AbstractFoo implements Foo{
   protected AbstractFoo(){}

   public Object processA(Object o){
       // do stuff
       return null;
   }

   public Object processB(Object o){
       // do more stuff
       return null;
   }
 }

 public class ConcreteFoo extends AbstractFoo {
 }
于 2013-10-29T12:32:39.920 回答
0

如果这是重构代码的一部分,为什么不能将重复代码放在一个侧面(可能是私有的)方法 C 中并从这两种方法中调用它?

于 2013-10-29T12:24:00.947 回答
0

您应该有 2 个接口,但您可以让一个类实现这两个接口。

于 2013-10-29T12:24:33.513 回答
0

那要看你写的是什么类型的程序。如果是web系统,我认为你应该构建这两个,因为层是必要的。

于 2013-10-29T12:30:09.580 回答