2013-10-29 72 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

這取決於你正在編寫什麼類型的程序。如果它是一個網絡系統,我認爲你應該建立這兩個,因爲圖層是必要的。