2012-12-19 70 views
1

像下面兩個類一樣,除了調用不同版本的參數外,它們幾乎看起來相同,那麼如何重構它們呢?如何用不同版本的參數重構同一類

import com.v1.B; 
import com.v1.C; 
class A1 
{ 
    public A1(B,C) 
    public dosomething1() 
    { 
    //do something with B and C 
    } 
    public dosomething2() 
    { 
    //do something 
    } 
} 

A2類:

import com.v2.B; 
import com.v2.C; 
class A2 
{ 
    public A2(B,C) 
    public dosomething1() 
    { 
    //do something with B and C 
    } 
    public dosomething2() 
    { 
    //do something 
    } 
} 
+1

你是什麼意思「調用不同版本的特性參數的」? – Hilikus

+0

我的意思是使用不同版本的參數,如B和C上面 –

+0

如果唯一的區別是參數,那麼你不需要兩個類。在你的例子中,兩個類的主體是相同的 – Hilikus

回答

1

應首先創建一個基類或接口,用於這兩種類型的例如com.v.BaseBcom.v1.Bcom.v2.B方便多態,然後你可以使用一個通用類,而不喜歡任何重複:

import com.v.B; 
import com.v.C; 
class A 
{ 
    public A(B,C) 
    public dosomething1() 
    { 
    //do something with B and C 
    } 
    public dosomething2() 
    { 
    //do something 
    } 
} 
相關問題