Pattern (minta) tervezési megfigyelő (megfigyelő)
Kinevezés minta Observer
- Observer minta határozza meg a kapcsolatot „egy-sok kapcsolat” az objektumok között, hogy ha változik az állam egy tárgy, az összes függő objektumok bejelentett és automatikusan frissül.
- Observer minta magában fő (független) komponensek az absztrakció Tárgy és változó (függő) komponens a hierarchiában Observer.
- Observer minta meghatározza egy részét "View" a modell Model-View-Controller (MVC).
Observer minta találja széles alkalmazási a felhasználói interfész rendszereket, ahol az adatok és bemutatása ( „fajok”) vannak elválasztva egymástól. Ha az adatváltozás kellene változtatni mindezen adatok (például táblázatok formájában, grafikonok és táblázatok).
megoldani a problémákat
Van egy rendszer, amely egy több együttműködő osztályok. Így kölcsönhatásba tárgyakat kell konzisztens állapotban. El szeretne kerülni egy monolitikus rendszer azáltal osztályok lazán (vagy többször).
Vita az Observer minta
Observer minta meghatároz egy Tárgy objektumot, amely rendelkezik az adatok (modell), és az összes funkcionalitását „reprezentációk” átruházza lazán kapcsolt egyes objektumok megfigyelő. Létrehozásakor megfigyelők Observer bejelentkezve Tárgy objektumot. Tárgy Ha az objektum megváltozik, akkor értesíti a valamennyi regisztrált megfigyelők. Ezt követően, az egyes böngésző kéri egy tárgy Tárgy a részét az állam, amely ahhoz szükséges, hogy az adatok megjelenítésére.
Ez a rendszer lehetővé teszi, hogy dinamikusan állítsa be a számot és a „típus” ábrázolások tárgyakat.
A fent leírt kommunikációs protokoll követi a pull (húzó), ahol az alany tájékoztatja a megfigyelők arról, hogy a változás, és minden vezető felelős „húzza” Tárgy a megfelelő adott neki. Van is egy push modell, ahol fenn entitás elküldi ( „tolja”) a megfigyelők részletes információt a változás.
Vannak is számos kérdést is meg kell említeni, de a vita a maradó hatályán kívül ezt a cikket:
- Megvalósítása a „tömörítés” értesítések (csak küldés észreveszi egy sor egymást követő Tárgy alá változások).
- Monitoring több egység segítségével az egyik megfigyelő megfigyelő.
- Kivétel lógó szám megfigyelők távoli tárgyakra. Ehhez a téma értesíteni kell a megfigyelők mintegy azok eltávolítására.
Observer minta használta először az építészet Model-View-Controller Smalltalk nyelv, amely a keretet épület felhasználói felületek.
A szerkezet a megfigyelő mintázat
Tárgy a fő (független) absztrakció. Megfigyelő változó (függő) absztrakció. A téma tájékoztatja megfigyelők arról, hogy a változás, hogy az egyes megfigyelő tudja kérdezni az állapotát a téma.
UML-osztály diagram mintázás Observer
Példa minta megfigyelő
Observer minta határozza meg a kapcsolatot „egy-sok kapcsolat” az objektumok között, hogy ha változik az állam egy tárgy, az összes függő objektumok bejelentett és automatikusan frissül. Néhány aukciók bizonyítják ezt a mintát. Minden résztvevő egy kártya számát, amit arra használ, hogy olvassa el az ajánlati ár (bid). Vezető aukció (Tárgy) megkezdi a kereskedelmi és karórák, ha valaki felveszi a kártyát kínál az új, magasabb áron. Vezető kérelmet kap, amelyet azután tájékoztatja az összes ajánlattevő (megfigyelők).
Az Observer minta
- Végezzünk különbséget a fő (vagy független) és komplementer (vagy függő) funkciókkal.
- Modellezni a „független” funkcionalitást absztrakció „alany”.
- Szimulálni egy „függő” funkció segítségével hierarchia „megfigyelő”.
- Tárgy C osztályú társított csak az alap osztály megfigyelő.
- Az ügyfél határozza meg a számát és típusát, a megfigyelők.
- Megfigyelők rögzítik a témában.
- Tárgy értesíti az összes regisztrált megfigyelők.
- Az alany „push” információ a megfigyelő vagy megfigyelők „pull” a szükséges információkat a Tárgy objektumot.
Jellemzők minta Observer
- Minták felelősségi lánc. Command. Közvetítő és az Observer megmutatja, hogyan lehetséges, hogy osztja a feladók és a címzettek kérelmek tekintve jellemzői. Felelősségi lánc feladó továbbítja a kérelmet a lánc mentén a lehetséges címzettek. Command határozza meg a kapcsolatot - „opravitel címzett” egy alosztálya. A Közvetítő feladó és a címzett hivatkoznak egymásra közvetett közvetítés útján. Az Observer minta közötti kommunikáció a küldő és a vevő fordul gyenge, az igénybe vevők száma lehet állítani a futás során.
- Közvetítő és az Observer versenyeznek mintákat. Ha Observer forgalmaz c kölcsönhatás révén tárgy „megfigyelő” és „tárgy”, akkor a Közvetítő használja közvetítés tokozás közötti kölcsönhatás más tárgyak. Azt találta, hogy könnyebb újrahasználható megfigyelők és tárgyai, mint Közvetítők.
- Közvetítő lehet használni, hogy dinamikusan regisztrálni Observer társaik, és azok kölcsönhatása a mediátor.
Végrehajtási mód Observer
Végrehajtása Observer pattern lépésekben
- Modellezni a „független” funkcionalitást absztrakció „alany”.
- Szimulálni egy „függő” funkció segítségével hierarchia „megfigyelő”.
- Tárgy C osztályú társított csak az alap osztály megfigyelő.
- Megfigyelők rögzítik a témában.
- Tárgy értesíti az összes regisztrált megfigyelők.
- A megfigyelők „pull” a szükséges információkat a Tárgy objektumot.
- Az ügyfél határozza meg a számát és típusát, a megfigyelők.