Unikalna klasa bazowa, dziedziczenie

0

Witam,

Czy jest możliwe stworzenie klasy bazowej, która będzie mogła utworzyć tylko jedną instancję swojego obiektu?
Klasy pochodne będą rozszerzały funkcjonalności klasy bazowej, ale jednocześnie będą operować na tych samych składowych z klasy bazowej?
Czyli np. jak obiekt Pochodna1 dziedziczący po Bazowa zmieni jakąś składową, którą posiada klasa Bazowa, to obiekt klasy Pochodna2 również dziedziczący po klasie Bazowej będzie miał dostęp już do tej nowej wartości?

1
Świetny Szczur napisał(a):

Witam,
Czy jest możliwe stworzenie klasy bazowej, która będzie mogła utworzyć tylko jedną instancję swojego obiektu?

Tak, istnieje taka mozliwosc. Zwykle mowi sie wtedy o wzorcu o nazwie singleton. Pierwszy lepszy przyklad z netu:

http://cpp0x.pl/kursy/Wzorce-projektowe/Wzorce-kreacyjne/singleton/161

Świetny Szczur napisał(a):

Klasy pochodne będą rozszerzały funkcjonalności klasy bazowej, ale jednocześnie będą operować na tych samych składowych z klasy bazowej?

W takim przypadku mozesz uzyc zmiennych statycznych (slowo kluczowe static). Jednak sam pomysl wydaje mi sie niezbyt fajny. Lepiej juz uzyj do tego osobnej klasy typu singleton i zamiast dziedziczyc po prostu odwoluj sie do tego singletona. No chyba, ze z jakis powodow rozwiazanie z dziedziczeniem jest akurat lepsze.

1

Dziedziczenie singletonu to coś, co z powodzeniem można nazwać banialuką.
Nie rób tego i przemysl architekture.

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