![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 7 Dołączył: 6.01.2010 Skąd: Opole Lubelskie Ostrzeżenie: (0%) ![]() ![]() |
Witam,
właśnie uczę się o wzorcu singleton. W teorii już wiem o co tam chodzi. Byłbym wdzięczny jakby ktoś lakonicznie przedstawił jak używać tego w praktyce (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Już chyba wiem co chcesz zrobić z tym singletonem. I muszę cię zmartwić - nie zadziała ci to tak jak chcesz. Problem jest taki, że pola statyczne nie są w żaden sposób powiązane z obiektami. Tzn. można powiedzieć, że są współdzielone przez wszystkie obiekty klasy i obiekty jej klas pochodnych. Przeanalizuj ten kod (wymaga PHP 5.3, jeśli masz starszą wersję zamień new static na new self, ale to zrobi jeszcze większy burdel):
Rozwiązaniem jest zastosowanie wzorca fabryka. Ewentualnie możesz przerobi singleton w taki sposób, żeby korzystał z tablicy nazwa_klasy => obiekt_klasy:
Do poczytania: http://php.net/manual/en/language.oop5.lat...ic-bindings.php get_called_class |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 05:38 |