Ich versuche gerade die Java Modifier etwas genauer zu verstehen.
Angenommen ich möchte Bibliothek erstellen, die Klassen verwedent, die nicht von außen für den Library-Nutzer sichtbar sein sollen, so mache ich doch folgendes:
richtig?
Wenn der Entwickler nun aus seinem package org.developer.application zugreifen will, so kann er MyInternalClass ja nicht instanzieren. Er könnte jedoch ein Wrapper schreiben:
richtig?
Damit können nun aus dem package org.developer.application die internen Methoden von MyInternalClass aufgerufen werden. richtig?
Kann man dies auch verhindern?
Angenommen ich möchte Bibliothek erstellen, die Klassen verwedent, die nicht von außen für den Library-Nutzer sichtbar sein sollen, so mache ich doch folgendes:
Java:
package org.my.library;
public final class MyInternalClass{
protected MyInternalClass(){
// ...
}
protected void anInternalMethod(){
// ...
}
}
Wenn der Entwickler nun aus seinem package org.developer.application zugreifen will, so kann er MyInternalClass ja nicht instanzieren. Er könnte jedoch ein Wrapper schreiben:
Java:
package org.my.library;
public class MyWrapperClass{
private MyInternalClass c;
public MyWrapperClass(){
c = new MyInternalClass();
}
public void anInternalMethod(){
c. anInternalMethod();
}
}
Damit können nun aus dem package org.developer.application die internen Methoden von MyInternalClass aufgerufen werden. richtig?
Kann man dies auch verhindern?