Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> W jakim celu stosuje się wzorce projektowe?
Jarod
post
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**
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athabus
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
Nie rozumiem tego kodu tongue.gif


Spójrz na to co napisał mike_mech - masz tam klasę książka i drugą kolekcję książek. Teraz Książka ma pewne cechy, które nie są inicjowane na początku, a tylko gdy są potrzebne -> tu to była liczba rozdzaiłów.
Teraz np. wzorzec obserwatora możesz wykorzystać aby uzyskać działanie, że gdy jedna książka z kolekcji pobiera swoje rozdziały to wszystkie pozostałe mają zrobić to samo. Zauważ jednak, że między klasą book a bookCollection nie ma żadnego powiazania "na sztywno". Po prostu klasa książka może "wysłać komunikat" do dowolneog obserwującego ją obiektu w stylu "pobrałam swoje rozdziały" -> a obserwator zdecyduje -> skoro ona pobrała swoje rozdziały to niech zrobią to inne książki. Inny obserwator książki mógłby zdecydować "skoro ona pobrała swoje rozdziały" to ja mogę je wyświetlić itp itd. Bez wzorca obserwatora musiałbyś mocno powiązać ze sobą oba typy klas co nie zawsze jest wskazane.

Cytat
To po co go stosować skoro nie spełnia w php (bo rozumiem, że w innym języku nie byłoby takie proeblemu) swojego zadania?


Dr_bonzo miał raczej na myśli, że akurat w tym przypadku w php trudno ten wzorzec wykorzystać, ale można go wykorzystać w inny sposób.
Go to the top of the page
+Quote Post

Posty w temacie
- J4r0d   W jakim celu stosuje się wzorce projektowe?   26.08.2006, 23:03:51
- - dr_bonzo   MVC tez jest wzorcem. Wzorzec to sprawdzone rozwi...   26.08.2006, 23:58:25
|- - J4r0d   Cytat(dr_bonzo @ 26.08.2006, 22:58 ) Musi...   27.08.2006, 12:00:56
- - J4r0d   Ok. Jeszcze jedno. Poniżej jest przykład z książki...   27.08.2006, 07:43:39
- - Cysiaczek   Tak. Pseudozmienna $this wskazuje na aktualny...   27.08.2006, 07:46:08
- - athabus   J4r0d - co do Twojego pierwszego pytania, to wzorc...   27.08.2006, 11:04:18
- - athabus   CytatNie rozumiem tego kodu tongue.gif Spójrz na ...   27.08.2006, 12:42:18
- - Taifun   a ja mam pytanie czy pisząc aplikacje PHP często s...   28.04.2011, 11:59:01
- - athabus   A dlaczego uważasz, że używanie wzorca nie jest wy...   28.04.2011, 12:13:10
- - nospor   Cytattak jak wam wygodniej czyli strukturaI dlacze...   28.04.2011, 12:15:35
- - Taifun   Piszę ponieważ ciężko przejść na obiektówkę z pisa...   28.04.2011, 12:24:25
- - athabus   Spróbuj wdrożyć jakiś framework obiektowy - zobacz...   28.04.2011, 12:29:45
- - kalipek   ja mam wskazówkę - przeczytaj porządną książkę w t...   28.04.2011, 12:40:51
- - Taifun   Nie lepiej zostać przy strukturalnym programowaniu...   28.04.2011, 12:46:08
- - athabus   Zdefiniuj "gdzieś". Jeśli chcesz klepać...   28.04.2011, 12:54:03
- - thek   I vice versa nospor Nawet pisząc strukturalnie mo...   28.04.2011, 13:06:10
- - kalipek   Mam coś po polsku i czytałem coś po polsku, tylko ...   28.04.2011, 13:32:20
- - LSM   @Jarod : Dokładnie miałem te same myśli co Ty kied...   17.06.2011, 02:19:25
- - irmidjusz   Chciałbym tu dodać, że wzorzec Obserwator jak najb...   6.03.2012, 23:46:39


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 05:28