![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od jakiegoś czasu eksperymentuję z obiektowym PHP, jednak moje strukturalne myślenie skutecznie mi to utrudnia. Tylko proszę nie odsyłajcie do przeszukiwania tematów jak wielokrotnie twierdzicie iż temat był poruszany tysiące razy, ja jednak szukając odpowiedzi w postach już istniejących na tym forum nie znalazłem satysfakcjonującej odpowiedzi. Mam prośbę, czy mógł by ktoś mi wypisać na przykładzie sklepu internetowego podział na klasy, oraz zakwalifikować je do odpowiednich części: Model, View, Controller Coś w stylu listingu klas, i nie jest to z mojej strony wyręczanie się Wami, a jedynie chciał bym dostrzec jak szczegółowo należy podejść do podziału danej dziedziny sklepu internetowego na klasy. Dzięki przypisaniu ich do odpowiednich części MVC, myślę że będę mógł szybciej i lepiej zrozumieć to z czym się borykam. Dodam może że do UML-a używam "NetBeans IDE 6.7.1" a interesujące mnie rozwiązanie to coś w stylu:
Ten post edytował nospor 14.10.2009, 23:08:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Dr4co ma IHMO rację. Przyłącze się do przykładu z wysłaniem danych. To model ma wiedzieć gdzie są dane i w jakiej postaci. Rzucono przykład zmiany z sms na twittera. Myślę, że dobrze ilustrujący problem. Jak dodano, pociąga to za sobą zmiany zarówno w kontrolerze, jak i modelu w przypadku stosowania modelu aplikacji przedstawionego przez jmaila. Tymczasem jest to do wychwycenia już przez sam model, który może przechwycić tę informację z pliku konfiguracyjnego bez pośrednictwa kontrolera. Kontroler z kolei może mieć wpływ na konfigurację, ale przed lub po operacji. Nie w trakcie. Powiedz mi czy przesyłając formularzem fotografię decydujemy w kontrolerze czy wywołamy createimagefrompng, gif czy jpg? To analogia. Model ma wykryć z czym ma do czynienia i się dostosować. Można więc porownać to do obróbki w gd. Nieważne co wprowadzamy... Kontroler oczekuje zawsze obiektu gd, nie zaś pliku jpg, bo nie wie, czy to na pewno jpg będzie. A może ktoś przysłał plik png. Czy użycie imagecreatefromjpg na pliku png da prawidłowy rezultat? Nie. Każdy format jest przetwarzany do takiego obiektu, na którym operacje są już niezależne od źródła, natywnego dla narzędzia. Przykład z drukarką też jest dobry. Kontroler wywołuje jedynie funkcję print(). To model ma wiedzieć, która drukarka jest domyślna, czy drukować w skali szarości czy kolorze. A może do pliku? To wszystko jest zaszyte w konfiguracji i model ma do tego dostęp. W zależności od sytuacji sam zdecyduje jak się zachować. Model ma to w swoich atrybutach. Wcale nie przeszkadza to wymuszaniu przez kontroler na modelu konkretne zachowanie, niezależne od jego domyślnego. Wystarczy, że sam zainicjuje model o innych parametrach. A to kontroler może zrobić tyle, że model z kolei może mu na to nie pozwolić, twierdząc że drukowanie nie jest możliwe bo brak mu sterownika tej drukarki (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 20:09 |