0
我已經理解了脆弱的Base類問題,並且我知道我們可以使用Composition over Inheritance或者在超類中聲明私有方法來解決它。 現在我想了解如何使用幫助器方法解決這個問題,所以我會把脆弱的基類的經典代碼,然後我會把我的解決方案與幫助器方法,告訴我,如果我做錯了請。如何使用幫助器方法解決脆弱的基類
這是一個脆弱的基類(來自維基百科)
public class JavaApplicationProvaHello {
public class A {
private int i;
public void inc1(){
i++;
}
public void inc2(){
inc1();
}
}
//---------------------------
public class B extends A{
@Override
public void inc1(){
inc2();
}
}
//------------------------
public class Test{
public static void main(String[] args) {
B b = new B();
b.inc1();
}
}
}
現在我改變了A級,並把兩個私有helper方法將由公共方法INC1調用和INC2
的代碼public class A {
protected int i;
public void inc1(){
inc1Helper();
}
public void inc2(){
inc2Helper();
}
private void inc1Helper(){
i++;
}
private void inc2Helper(){
inc1Helper();
}
}
在我的編譯器中一切正常,我問自己是否這是用輔助方法解決脆弱基類的最佳解決方案。感謝您的關注。