我有两种不同的方法需要在我的程序中重复,例如methodA和methodB。
程序的某些部分需要调用methodA,而其他一些部分需要调用methodB,有些需要同时调用它们。整个计划中这些方法的实施是相同的。
我应该如何构建类和方法以减少重复?我想到的第一件事就是我希望Java支持多重继承。
我想到的第二件事是将每个方法放在它们自己的接口中,并让类根据需要实现它们,但是这些方法的实现在整个程序中完全相同,因此必须定义每个班级的实施听起来不是一个好主意。
我仅限于Java 6. 7如果我可以说服我团队中的其他人,那么Java 8中的默认方法实现就不是一种选择。
P.S。我意识到问题的标题是非常糟糕的,但我想不出一个简单的方法来解释这个问题。如果您有任何建议,请建议更好。
答案 0 :(得分: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 {
}
答案 1 :(得分:0)
如果这是重构代码的一部分,为什么不能将重复代码放在一边(可能是私有的) methodC ,并从那些调用它们方法
答案 2 :(得分:0)
你应该有2个接口,但你可以有一个类实现这两个接口。
答案 3 :(得分:0)
这取决于你正在编写什么类型的程序。如果它是一个网络系统,我认为你应该对这两个程序进行建议,因为这是必要的。