![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ostatnio trochę czytałem na temat MVC i tak naprawdę tylko niektóre rzeczy z tego mi się podobają, nie wiem może jeszcze nie dostrzegam za wielu plusów, ale chce zastosować u siebie coś podobnego. Napisałem sobie klasę router i request, pierwsza pobiera dane z adresu, druga z formularzy, cookies, sesji i obsługuje dane z routera, klasę FrontController, które uruchamia moduł i tworzy instancję i klasę Action, uruchamia akcję (wywołuje metodę klasy). Kodowo wygląda to mniej więcej tak:
Jak powiecie czy to rozwiązanie jest optymalne, warto to dalej kodować, czy lepiej zabrać się za kodowanie 'standardowe' - z wprowadzaniem argumentów do funkcji itd.? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Powiązania, jak sam zauważyłeś, są złe. Zacznijmy od tego, że Front Controller nie jest akcją - on wywołuje akcje, a to zupełnie inna relacja. Jeżeli chcesz podzielić działanie w stylu: moduł = klasa, akcja = metoda, to bym proponował stworzenie interfejsu modułu:
U Ciebie za moduł robił Sub Controller, ale nazwa Module wydaje się logiczniejsza moim zdaniem, szczególnie, że używasz jej w nazwie metody runModule(). Możesz pokusić się o stworzenie klasy abstrakcyjnej, albo zastąpić nią interfejs:
Front Controller jest ok, tylko usuń to dziedziczenie... Do tego bym odpalał obsługę żądania nie w konstruktorze, ale osobnej metodzie np. run(). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 17:35 |