2012-07-31 36 views
3

我有我想其中一個方法來重構Eclipse的重構重寫方法成最終和抽象部分

基本上我想要分割的抽象頂層方法和最後部分。 在其中添加了附加功能的不少地方,有關方法被覆蓋,但最終總是會發出超級呼叫。

代碼現在基本上是這樣的: (不是所有的擴展類覆蓋,但那些做,做這種方式)

class Base { 

public Object getStuff(String key) { 
out = //code to get data from the Database. 
return out 
} 

class Extended1 extends Base { 
    public Object getStuff(String key) { 
     if("some_non_db_value".equals(key)) { 
     return "some custom stuff"; 
     } 
     return super.getStuff(key); 
    } 
} 

我想什麼,結果會是這樣的:

class Base { 

public final Object getStuff(String key) { 
    out = getCustom(key); 
    if(out != null) { 
     return custom; 
    } 

    out = //code to get data from the Database. 
    return out 
} 

public abstract Object getCustom(String key); 

}

class Extended1 extends Base { 
    public Object getCustom(String key) { 
     if("some_non_db_value".equals(key)) { 
     return "some custom stuff"; 
     } 
     return null; 
    } 
} 

我希望會有一個重構行爲離子(或部分重構)到達(或更接近)這一點。

回答

3

我會首先將getStuff()重命名爲getCustom(),它將處理所有擴展類。然後改變基類應該相對容易。

+0

這基本上是我所做的 – pvgoddijn 2012-08-09 12:34:48

相關問題