-
Data: 2012-07-14 07:30:55
Temat: Re: kiedy singleton, a kiedy statyczne metody?
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu piątek, 13 lipca 2012 20:10:10 UTC+2 użytkownik (Nieznane) napisał:
> Mam nieduże doświadczenie w OOP. Pojawiło mi się takie pytanie: kiedy używac klasy
z samymi statycznymi metodami a kiedy wzorca sigleton?
Singleton ma sens wtedy, gdy obiekt ma implementować zadany interfejs. Wtedy
singleton zwraca jeden egzemplarz obiektu klasy pochodnej.
Jak często taka sytuacja występuje? Trudno powiedzieć. Przykładem z biblioteki
standardowej są obiekty cin, cout i cerr, które istnieją w jednym egzeplarzu i
realizują interfejsy istream/ostream.
Dobrym przykładem mogą być też różne biblioteki do logowania, gdzie jest jakiś
interfejs loggera i jakaś funkcja, która zwraca ten "jeden jedyny" (np. root logger
albo jak go tam nazwiemy), co nie wyklucza też istnienia wielu innych,
implementujących ten sam interfejs.
Natomiast jeśli nie ma potrzeby realizowania zadanego interfejsu, to singleton tylko
plącze się między nogami. Funkcje statyczne też się plączą. Napisz po prostu funkcję,
której implementację umieścisz w osobnym pliku a jej stan zdefiniujesz w nienazwanej
przestrzeni nazw. Coś takiego:
// counter.h:
int getNextValue();
// counter.cpp:
namespace
{
int nextValue = 0;
}
int getNextValue() { return nextValue++; }
I tyle.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
Następne wpisy z tego wątku
- 14.07.12 11:09 Adam Wysocki
- 14.07.12 23:27 Maciej Sobczak
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=
- 2025-01-31 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-31 Błonie => Administrator systemów <=