Ich habe das zerbrechliche Basisklassenproblem verstanden, und ich weiß, dass wir es lösen können, indem wir Komposition über Vererbung verwenden oder private Methode in der Oberklasse deklarieren. Jetzt versuche ich zu verstehen, wie dieses Problem mit Hilfsmethode zu lösen, so werde ich den klassischen Code der fragilen Basisklasse setzen und dann werde ich meine Lösung mit Helfer Methode setzen, sagen Sie mir, wenn ich etwas falsch machen bitte. Wie man die zerbrechliche Basisklasse mit Hilfsmethoden löst
Dies ist der Code einer fragilen Basisklasse (aus Wikipedia)
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();
}
}
}
Jetzt habe ich die Klasse A ändern und setzte zwei private Hilfsmethoden, die von der öffentlichen Methode INC1 aufgerufen werden, und INC2
public class A {
protected int i;
public void inc1(){
inc1Helper();
}
public void inc2(){
inc2Helper();
}
private void inc1Helper(){
i++;
}
private void inc2Helper(){
inc1Helper();
}
}
In meinem Compiler funktioniert alles, ich habe mich gefragt, ob dies die beste Lösung ist, zerbrechliche Basisklasse mit Hilfsmethoden zu lösen. Danke für die Aufmerksamkeit.