Hirdetés

Keresés

Új hozzászólás Aktív témák

  • fatal`
    titán

    Sziasztok!

    Van valami bevált pattern arra, hogy szimuláljuk azt, hogy a leszármazott osztályokban az ősben deklarált statikus változóból legyen mind egy-egy példány a gyerekekben?

    Leírom mit szeretnék:

    class Base {

    static Object o = new Object();

    }

    class Derived1 extends Base {

    }

    class Derived2 extends Base {

    }

    Teljesen helyesen ilyenkor csak egy Object példányosul, tehát a Derived1.o és a Derived2.o és a Base.o is ugyanarra az objektumra mutat. Azt szeretném elérni, hogy ezek mind más példányra mutassanak.

    Azért lenne szükségem erre, mert Androidban adatbáziskezelő osztályaim vannak, amik nyitását/zárását static mezők felügyelik, és van leszármazási hierarchia az osztályok között. Mivel minden osztályból egy példány van (~singleton), ezért szükségem van, hogy minden osztályra külön "felügyelő" változó legyen, de nem akarok kódismétlést.

    Lehet, hogy rosszul közelítem a dolgot, de mi lenne, ha a Base abstract lenne és lenne egy abstract getter függvénye ami visszaadja a jelenleg static objectedet? Így az ősosztályba írhatod a függvényt elkerülve a kódismétlést, az leszármazott osztályban meg megírod a gettert, így külön objektumaid lesznek.

Új hozzászólás Aktív témák