![]() |
![]() |
![]()
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%) ![]() ![]() |
Potrzebna by była bardzo rozbudowana klasa, a Ty musiałbyś mieć dostęp do wielu jej właściwości z prawie każdej metody. Wtedy ustawianie wszystkiego na static troche miajałoby się z celem. Weźmy naprzykład parser szablonów. W całym kodzie chcesz używać tylko jednej isntancji (wiadomo, assign), ale ciężko dostarczyć referencje do niej każdemu innemu obiektowi. Ustawianie wszystkich zmiennych klasowych w parserze szablonów byłoby karkolomne, natomiast w każdym obiekcie który będzie go potrzebował możesz pobrać instancję przez wywołanie odpowiedniej metody poprzez oparator statyczny. Jeśli chodzi o przykłady kodu, to ciężko mi jest coś teraz napisać, ale myśle że pod tym adresem znajdziesz dość ciekawy przykład wraz z opisem (niestety wszystko to odnośnie php 4, jednak niektóre rzeczy sie nie zmieniałją, metody/zmienne statyczne nie zastąpią Ci wszystkiego (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 15:49 |