![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Czytam sobie o wzorcach projektowych. Przerabiam właśnie wzorzc obserwatora (rozumiem, że jest ich dużo więcej niż w książce "php Zaawans. progr." ?). Już miałem sie pytać o wyjaśnienie bo strasznie zamotany ale jakoś załapałem. Po co się stosuje takie wzorce? Często wydaje mi się, że człowiek opracowując swój algorytm na rozwiązanie problemu może stosować nieświadomie jakiś wzorzc albo tworzyć swój własny. Czy wzorzec to nie inaczej algorytm? Czy wzorce to coś takiego jak MVC albo inaczej czy MVC jest wzorcem?
Wracając do wzorca obserwator. Autor pisze coś takiego: Cytat Bardzo często mamy do czynienia z danymi, które ulegają zmianie wraz z upływem czasu.Powiedzmy, że dysponujemy pewnymi elementami GUI, które powinny wyświetlać te dane, a także odświeżać zawartość , gdy dane ulegają zmianie. Jak to osiągnąć? Można przekazywać nowe dane do odpowiedniej metody komponentu, GUI, tak aby mógł on odświeżyć swoją zawatość. Co jednak gdy nie jest oczywiste jak często te dane będą aktualizowane a interfejs użytkownika powinien być odswieżany przy każdej zmianie? Autor sugeruje, że rozwiązaniem jest wzorzec obserwatora. Przestudiowałem go bardzo dokładnie, próbując zrozumieć dziwny tok rozumowania autorów tej książki. I myslę, że to jedna wielka bujda, przynajmniej w php. Wiadomo, że php wykonywany jest po stronie serwera. Załóżmy, że ktoś wporwadzi jakieś zmiany w bazie, to, aby sprawdzić (czyli obserwator) czy dane uległy zmianie musi np wydać odpowiednie zapytanie sql. Ale jak często ma to sprawdzać? Czyli trzebaby ustawić na szcztwno, że strona ma się odświeżać co 30sekund. Albo ja nie łapie tego albo to jest otalnie pojeba** |
|
|
![]() |
![]()
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 ![]() |
I vice versa nospor (IMG:style_emoticons/default/wink.gif) Nawet pisząc strukturalnie można zaprowadzić kodzie ideologię wzorców, czego dobrym przykładem byłoby podzielenie kodu strukturalnego na "warstwy". Jarod, Taifun: na początku przetwarzasz żądanie ( kontroler/prezenter ), potem wywołujesz z bazy na jego podstawie dane Ci potrzebne ( model ) i umieszczasz je w strukturze generowanej strony (widok). Różnica między podejściem obiektowym i strukturalnym wynikała by tu jedynie z "innego opakowania". Ale sam schemat/zamysł pozostałby niezmieniony. Przykładowo ja tak w części starych serwisów robię. Nie mogę zmienić użytego narzędzia, przypuśćmy ograniczenie do określonej wersji MySQL, PHP i systemu szablonów. Pozostaje mi więc jedynie takie usystematyzowanie kodu strukturalnego, by zmieniając jedynie plik odpowiedzialny za pojedyncze zadanie, zrobić to nie burząc/nie modyfikując działania innych opartych o te same komponenty (jakieś shared typu footer czy head) czy w oparciu o ów modyfikowany, poprawić jakość i czytelność kodu, nieraz typowego spaghetti. Nie jest to jawne i wprost trzymanie się wzorca, ale pewnych jego założeń, które w późniejszym etapie (konserwacja i aktualizacja kodu) w wymierny sposób wpływają na czas obcowania z kodem będącym już poprawionym.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 14:40 |