![]() |
Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 31.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Singleton to takie zmienne superglobalne, utrudniające dodatkowo podmianę pojedynczego komponentu systemu na inny. Jeżeli po prostu użyć zmiennych globalnych (albo nawet rejestru) można przypisać do danej zmiennej/pozycji instancję dowolnej klasy o dowolnej nazwie która ma po prostu określony API współpracujący z danym komponentem. Jeżeli jednak system używa Singletonu to nie jest to możliwe - konieczna jest albo modyfikacja danego komponentu albo utworzenie nowej klasy o nazwie takiej, jakiej rząda ten komponent.
Rejestr działa identycznie jak zmienne globalne, ale jest dużo mniej wygodny w obsłudze i na dodatek jest wolniejszy niż wbudowane w PHP zmienne globalne. Zmienne globalne też jakimś idealnym rozwiązaniem nie są, ale lepszego po prostu w PHP nie ma. Dlatego właśnie ich używam. @bim2 @BTW: tak Ten post edytował LEW21 21.07.2007, 19:23:39 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 15.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Osobiście wydaje mi się, że używanie zmiennych globalnych _zwykle_ jest bezcelowe, poza tym zaczernia cały projekt aplikacji (wyjątki się zdarzają, ale rzadko). To czy użyć wzorca rejestru czy singletona czy choćby IoC (czy czy któryś dwóch) jest zależne od tego co dany obiekt ma robić, za co odpowiadać. Nie można z góry powiedzieć, że registry jest lepsze od singletona i odwrotnie (choćby dlatego, że dają różne możliwości i mają różne cechy). Wszystkich wzorców trzeba używać z rozwagą (choć zgodze się, że signleton jako jeden z najprostszych jest nadużywany), ale nie zgodzę się, że singleton sam w sobie jest czymś złym, bo widzę dla niego zastosowania, w których sprawdzi się doskonale.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 21:56 |