eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingkiedy singleton, a kiedy statyczne metody?Re: kiedy singleton, a kiedy statyczne metody?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!news.
    nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!glegrou
    psg2000goo.googlegroups.com!not-for-mail
    From: Maciej Sobczak <s...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: kiedy singleton, a kiedy statyczne metody?
    Date: Fri, 13 Jul 2012 22:30:55 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 39
    Message-ID: <f...@g...com>
    References: <e...@g...com>
    NNTP-Posting-Host: 46.171.80.166
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1342243855 26135 127.0.0.1 (14 Jul 2012 05:30:55 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Sat, 14 Jul 2012 05:30:55 +0000 (UTC)
    In-Reply-To: <e...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.171.80.166;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    User-Agent: G2/1.0
    Xref: news-archive.icm.edu.pl pl.comp.programming:198453
    [ ukryj 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: