![]() |
![]() |
![]()
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%) ![]() ![]() |
Tzn. masz kod, który tworzy obiekt Main_Controllera, który na podstawie podanych parametrów decyduje który kontroler ma zostać utworzony i tworzy jego obiekt. Dodatkowo wszystkie klasy kontrolerów dziedziczą po Main_Controller.
Jeśli tak, to tworzysz na dobrą sprawę dwa obiekty Main_Controllera - zwykły i obiekt klasy pochodnej (jeśli nie łapiesz dlaczego, to musisz trochę więcej poczytać i poeksperymentować z dziedziczeniem i polimorfizmem) - a to jest sprzeczne ze wzorcem singleton. Dlatego gdy poprawnie zaimplementowałeś ten wzorzec, to wszystko zaczęło się sypać. Zastanów się: 1. Czy na pewno potrzebny jest tutaj singleton. Chcesz wymusić istnienie co najwyżej jednego obiektu kontrolera, czy po prostu chcesz się móc do tego obiektu dostać z każdego miejsca w kodzie? 2. Czy na pewno twoje kontrolery są wyspecjalizowanymi odmianami Main_Controllera w taki sam sposób jak komunikat błędu jest wyspecjalizowaną odmianą komunikatu? Może po prostu jedynym podobieństwem jest słowo Controller w nazwie, a tak na prawdę zajmują się czymś zupełnie innym? Ten post edytował Noidea 16.10.2011, 22:56:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 19:06 |