2012-07-31 37 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

相关问题