![]() |
![]() |
![]()
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: Zarejestrowani Postów: 64 Pomógł: 6 Dołączył: 20.03.2011 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
@Jarod : Dokładnie miałem te same myśli co Ty kiedy przerobiłem ten wzorzec w tej książce.
Uważam, że ta kniga jest o tyle dobra że przynajmniej zmusza do myślenia hehe. Ja ten wzorzec uznałem za bezsensowny w przypadku PHP który jest językiem skryptowym bez pojęcia "wątków". Oczywiście jakaś tam implementacja wątków w PHP jest, można ją symulować CRON'em etc. ale to tylko prowizorka "prawdziwych wątków". Przykład z książki jest nietrafiony i naciągany - być może. Przynajmniej trudno zrozumieć intencje autorów. Nie są one sprecyzowane. Jednak wzorzec obserwator możnaby użyć do systemu, który komunikuje się z innymi systemami zewnętrznymi za pomocą różnych protokołów (FTP, SOAP, RPC, HTTP etc). Wtedy (jednak ponownie symulując wątki w CRON) uruchamiamy wywoływacz który spr. zmianę źródeł danych i steruje widokiem. Również jest możliwe otrzymanie inf. jako pierwszej z zew. systemu gdy ten zechce się zaktualizować swoje dane. Przykłąd z życia: system kredytowy (frontend dla banków) do zarządzania sprzedażą kredytów. Bierze pod uwagę różne sposoby komunikacji banków i ich źródła danych które z jednej strony są odświeżane przez "wątek symulowany" PHP'a z drugiej są otrzymywane inf. generowane z systemów bankowych przez protokół SOAP, lub HTTP (czyli system bankowy łączy się wywołując nasz PHPowski URL z ustalonymi wartościami GET tak na chłopski rozum) :-) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 16:06 |