Przeciążanie metod Singletona

0

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().

0

jesteś pewien, że to ma być singleton?

0

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().

0

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ć?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0