![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 204 Pomógł: 0 Dołączył: 26.12.2003 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Może mnie ktoś oświecić dlaczego używa się singletonów? np:
skoro to samo można osiągnąć w ten sposób?:
Widze jakie są różnice, jednak nie rozumiem dlaczego singletony są stosowane skoro zapis Foo::bar(); jest wygodniejszy i kod klasy krótszy... Czy za pomocą singletonów można zrobić coś, o czym nie wiem? |
|
|
![]() |
![]()
Post
#2
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Myśle że właśnie sam sobie odpowiedziałeś na swoje pytanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przy większych klasach singleton może być przydatny, ale w klasie np. Config, któtra ma za zadanie jedynie przechowywać dla nas jakieś informacje dużo wygodniejszym wyjściem będzie odowołanie się przez operator statyczny. Nie musimy się wtedy martwić o instancje, co byloby problemem jesli chcielibyśmy pobrać w jakiejś metodzie dane tylko w jednym miejscu. Zresztą ja próbowałem robić takie numery już w php 4, było to troche karkołomne ale działało. Otóż każda metoda klasy Klasa przy pierwszym wywołaniu wywoływala Klasa::GetInstance() i zapisywała referencje do zmiennej statycznej. Dane były umieszczone w zmiennych klasowych, ale ja miałem ten konfort że mogłem je pobierać przez Klasa::Get(), a sama metoda troszczyła sie o pobranie instancji odpowiedniego obiektu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Oczywiście w php 5 jest to już zbędne, klasowe zmienne statyczne załatwiają sprawe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:26 |