• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wzorzec obserwator. Jak to działa?

VPS Starter Arubacloud
0 głosów
423 wizyt
pytanie zadane 16 lutego 2018 w JavaScript przez SandraS Obywatel (1,400 p.)
Jestem początkującą programistką. Mam przygotować prezentację o tym wzorcu. Czytam i czytam i dowiaduje się. że składa się na niego obserwator i obiekty obserwowalne. Ale jak to  się implementuje? Czy są jakieś gotowe rzeczy do zaimplementowania, które tworzą te obiekty? Np <observator>.. Czy ktoś jest mi w stanie na prostym przykładzie wytłumaczyć w ogóle stworzenie przykładu?
komentarz 17 lutego 2018 przez rot18ru Bywalec (2,100 p.)
Przecież obserwator to nic innego jak podpinanie się pod wydarzenia w HTMLu. Z tagów jakich użyłeś wnioskuje, że znasz już JSa i HTMLa więc na pewno wiele razy podpinałeś się np pod kliknięcie przycisku tworząc tym samym obserwatora.

W klasycznych językach obiektowych nie przekazuję się do obiektu obserwowanego funkcji (tzw callback) tylko cały obiekt i z tego całego obiektu jest wywoływana jedna funkcja np "notify" która odpowiada callbackowi w JSie

2 odpowiedzi

0 głosów
odpowiedź 16 lutego 2018 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 17 lutego 2018 przez SandraS
 
Najlepsza

Ten link prezentuje strukturę tego wzorca na przykładzie kodu C++. Tutaj na przykładzie JS.

komentarz 16 lutego 2018 przez SandraS Obywatel (1,400 p.)
I tak nie do końca jest to dla mnie zrozumiałe. w tym przykładzie tworzona jest tablica obiektów obserwowalnych i funkcje pozwalające operować na nich. Następnie tworzona jest funkcja Subject, która przypisuje ją do this.observer i dodaje już na tym poziomie analogiczne metody. Dalej mi to nic nic nie mówi. Mógłby mi tu ktoś to łopatologicznie na najprostszym przykładzie wytłumaczyć?
komentarz 16 lutego 2018 przez Patrycjerz Mędrzec (192,320 p.)

Są dwie klasy: Obserwator i Obserwowany. Pierwsza z nich zawiera implementację metody aktualizuj. Druga posiada modyfikowalną listę obiektów klasy Obserwator i wywołuje (kiedy ma na to ochotę) metodę aktualizuj wszystkich elementów listy.

To tak, jakbym pisał maturę, a szkoła (Obserwator) wysłała by ją do OKE (Obserwowany). Komisja oceniłaby wszystkie matury ze wszystkich ośrodków z nią powiązanych (lista Obserwatorów), a potem zaczęłaby wysyłać świadectwa egzaminu dojrzałości wszystkim zainteresowanym (wywołanie metody aktualizuj wszystkich elementów listy).

To Obserwowany decyduje, którym Obserwatorom wysyła dane (zazwyczaj swoje).

komentarz 17 lutego 2018 przez SandraS Obywatel (1,400 p.)
Dziękuję :)
0 głosów
odpowiedź 16 lutego 2018 przez CenterPL Pasjonat (19,070 p.)
<?php 
interface Observable
{
    public function addObserver();
    public function notifyObservers();
}

Zobacz na taki interfejs - myślę, że może Ci dużo wytłumaczyć. Dobrym przykładem, gdzie można zaimplementować wzorzec Obserwatora myślę, że będzie jakiś system mailingowy. Mamy subskrybentów, gdzie klasa subskrybenta będzie obserwatorem, a klasa wysyłająca mailing może tu implementować interfejs Observable. Taki klient podaje swój email i zostaje subskrybentem, dodajemy go przez metodę addObserver jako obserwatora do klasy nadającej mailing. Teraz gdy ślemy maila, możemy do niego wysłać przez notifyObservers() - w ciele tej metody bedzie pewnie jakaś pętla, ale jak to zaimplementujesz to już Twoja sprawa. 

Podobne pytania

0 głosów
0 odpowiedzi 106 wizyt
pytanie zadane 27 czerwca 2019 w PHP przez niezalogowany
0 głosów
2 odpowiedzi 480 wizyt
pytanie zadane 27 listopada 2017 w JavaScript przez Al3x Użytkownik (870 p.)
+2 głosów
1 odpowiedź 340 wizyt
pytanie zadane 1 stycznia 2017 w C i C++ przez GameProgrammer Obywatel (1,140 p.)

93,018 zapytań

141,988 odpowiedzi

321,281 komentarzy

62,364 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...