2013-10-29 46 views
1

我有2种不同的方法需要在我的程序中重复使用,例如, methodA和methodB。在类中继承多种方法

程序的某些部分需要调用methodA,而其他一些需要调用methodB,有些需要调用它们。这些方法的实施在整个计划中都是相同的。

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

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

我仅限于Java 6. 7如果我能说服团队中的其他人,那么Java 8中默认的方法实现不是一种选择。

p.s.我意识到问题的标题是非常糟糕的,但我想不出一个简单的方法来解释这个问题。如果您有任何问题,请提出更好的建议。

+0

似乎完美的定义'interface'。 –

+0

@sᴜʀᴇsʜᴀᴛᴛᴀ,是的,但这些方法的实现在类中完全相同。不定义接口要求我重新定义每个类中的方法? – hndr

+1

为什么不能简单地从定义这两种方法的基类中进行扩展,目前还不是很清楚。示例代码将有所帮助。 –

回答

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 { 
} 
0

如果这是重构你的代码的一部分,你为什么不能把你的重复代码在侧(也许私人)methodC,并从这些两种方法调用它呢?

0

你应该有2个接口,但是你可以有一个类实现两个接口。

0

这取决于你正在编写什么类型的程序。如果它是一个网络系统,我认为你应该建立这两个,因为图层是必要的。