Jak w temacie - jak to zrobić? Mam metodę test() która jest protected w klasie Singletonu. Chce napisać klaskę która będzie pobierać instancję tego singletonu a jednocześnie przebije metodę test().
jesteś pewien, że to ma być singleton?
Rozumiem że ta chroniona metoda jest używana w jakichś innych metodach i dlatego chciałbyś zmienić jej zachowanie?
To się nazywa Template Method -> zrób abstrakcyjną klasę bazową która zawiera metodę test jako abstract (reszta kodu może pozostać nie zmieniona).
Następnie zrób klasę dziedziczącą z tej bazowej gdzie test() wygląda tak jak teraz.
Następnie zrób swoja klasę dziedziczącą z tej bazowej z nową implementacją test().
Ciężko mi pojąć to: może na konkretach. Klasa NativeLibrary z pakietu com.sun.jna
Interesują mnie dwie metody
protected void finalize() {
dispose();
}
public void dispose() {
synchronized(libraries) {
libraries.remove(getName() + options);
File file = getFile();
if (file != null) {
libraries.remove(file.getAbsolutePath() + options);
libraries.remove(file.getName() + options);
}
}
synchronized(this) {
if (handle != 0) {
close(handle);
handle = 0;
}
}
}
Klasa jest w duża więc nie będe wklejał całej.
Nie rozumiem jak będą obsługiwane metody, które nie przebiję. Nie mogę przecież dać super - czy całość muszę po prostu przepisać?
Czy to musi być dziedziczone (bo tego nie zrobisz)? Nie możesz po prostu delegować do tego obiektu?
To protected jest tylko dlatego, że private nie mogłoby być - w klasie Object finalize
jest protected.