Domov Osobní finance Porozumění vzorům pozorovatelů - figuríny

Porozumění vzorům pozorovatelů - figuríny

Obsah:

Video: O kosmu, UFO, fyzice a templářských rytířích - NASSIM HARAMEIN (přednáška 1/2) 2024

Video: O kosmu, UFO, fyzice a templářských rytířích - NASSIM HARAMEIN (přednáška 1/2) 2024
Anonim

Vzor vzhledu Observeru umožňuje několik objektů pozorovatele upozornit, když se předmět objektu nějakým způsobem změní. Každý pozorovatel se zaregistruje s předmětem, a když dojde k takové změně, oznamuje předmět všem všem. Každý z pozorovatelů je informován současně (tedy současně).

Vytvoření rozhraní objektu

Při implementaci návrhového vzoru je často dobré začít vytvářením rozhraní, abyste se ujistili, že objekty, které vytvoříte, budou dodržovat vzor, ​​který se pokoušíte použít - zejména pokud jsou zahrnuty více objektů. Implementace tohoto rozhraní - naprogramování na rozhraní, jak se nazývá - udržuje váš kód v souladu a obvykle udržuje věci jasnější.

Když umístíte vzhled Observeru do kódu, nastavte pro pozorovatele pozorovací rozhraní nebo abstraktní třídu; Obvykle budete mít více pozorovatelů a musíte dodržovat metody, které implementují, konzistentní.

V tomto příkladu je také třeba nastavit rozhraní pro předmět, což pozorovatelé pozorují; v rozhraní Předmět jsou uvedeny metody, které musí subjekty implementovat. Zde vložte metodu registerSbserver tak, aby subjekt mohl sledovat pozorovatele, kteří chtějí být registrováni. Kromě registrace pozorovatelů byste měli mít nějaký způsob, jak se je zbavit, a tak přidat metodu removeObserver. A existuje metoda notifyObservers, která upozorní pozorovatele na nějakou změnu.

public interface Předmět

{

public void registerObserver (Observer o);

public void removeObserver (Observer o);

public void notifyObservers ();

}

Toto rozhraní obsahuje seznam metod, které mají implementovat databázový systém. Další krok: rozhraní pro pozorovatele.

Vytvoření rozhraní pro pozorovatele

Vytváření rozhraní Observer, které provádějí pozorovatelé a umožňuje jim dostávat oznámení, je jednoduché. Vše, co potřebujete, je metoda, která bude volána, když bude připraveno nové oznámení (můžete tuto metodu nazvat). V tomto příkladu předáte operaci databáze, která byla provedena (například "edit", "delete", "create" a tak dále) a záznam, který byl změněn jako řetězec metodě aktualizace.

Pozorovatel veřejného rozhraní

{ public void update (operace řetězce, záznam řetězce);

}

Když pozorovatelé implementují metodu aktualizace, subjekt je schopen předat záznam, který byl ovlivněn, a operaci, která byla provedena.

Dobře, máte dobré jít. Je čas vytvořit databázi, která bude sledovat pozorovatele a upozorní je na změnu.

Vytvoření objektu

Subjekt musí nechat pozorovatele registrovat a musí je upozornit, když nastane událost. Podle rozhraní rozhraní Téma, které má subjekt implementovat v těchto příkladech, jsou: registerObserver, removeObserver a notifyObservers. To je to, co dělá třída databáze v tomto příkladu.

Chcete-li sledovat pozorovatele, použijte vektor Java nazvaný pozorovatelé, vytvořený v konstruktoru databáze. (Specifikátor typu zde, je pro Java 1. 5 nebo novější a označuje, že každý objekt pozorovatele implementuje rozhraní Observeru, pokud používáte starší verzi Java, vynechejte specifikátor typu.)

import java. util. *;

veřejná třída Databáze implementuje předmět

{

soukromé Vektorové pozorovatele;

veřejná databáze ()

{

observers = new Vector ();

}

.

.

.

}

Při použití vektoru je sledování pozorovatelů jednoduché. Když chce pozorovatel zaregistrovat, volá metodu registru objektu Observer a předává se jako objekt. Předmět - objekt naší třídy Databáze - prostě přidá pozorovatele k vektoru pozorovatelů v metodě registerObserver pomocí metody přidání třídy Vector.

import java. util. *;

veřejná třída Databáze implementuje předmět

{

soukromé Vektorové pozorovatele;

veřejná databáze ()

{

observers = new Vector ();

}

public void registerObserver (pozorovatel o)

{

pozorovatelé. přidat (o);

}

.

.

.

}

Jak odstranit pozorovatele z pozorovatele? Žádný problém. Pokud chcete odstranit objekt z vektoru, můžete použít metodu odstranění vektoru; zde je, jak to funguje v metodě removeObserver třídy Třída databáze:

import java. util. *;

veřejná třída Databáze implementuje předmět

{

soukromé Vektorové pozorovatele;

veřejná databáze ()

{

observers = new Vector ();

}

public void registerObserver (pozorovatel o)

{

pozorovatelé. přidat (o);

}

public void removeObserver (pozorovatel o)

{

pozorovatelé. odstranit (o);

}

.

.

.

}

Když uživatel skutečně něco dělá s databází - například odstraní záznam - volá metodu editRecord třídy Třídy databáze. Chcete-li například odstranit záznam 1, můžete tuto metodu nazvat takto:

databáze. editRecord ("smazat", "záznam 1");

Jak vypadá metoda editRecord: Když je tato metoda volána, předáte ji operaci databáze, kterou chcete provést, a záznam, na kterém chcete pracovat, a to jak jako řetězec v tomto příkladu. Tyto řetězce jsou uloženy tak, aby mohly být předány pozorovatelům. Po uložení řetězců je volána metoda notifyObservers, která přichází dále, aby upozornila všechny pozorovatele.

import java. util. *;

veřejná třída Databáze implementuje předmět

{

soukromé Vektorové pozorovatele;

soukromá operace řetězce;

soukromý záznam řetězce;

veřejná databáze ()

{

observers = new Vector ();

}

.

.

.

public void editRecord (operace řetězce, záznam řetězce)

{

toto.provoz = provoz;

tohle. záznam = záznam;

notifyObservers ();

}

}

Zde je maso kódu, část, která oznamuje každému pozorovateli, že došlo ke změně: metoda notifyObservers. Každý pozorovatel implementuje toto příkladové rozhraní Observer - což znamená, že má aktualizační metodu - tak notifyObservers jen musí smyčku nad všemi registrovanými pozorovateli ve vektoru pozorovatelů a volat každou metodu aktualizace s databázovou operací a postiženým záznamem.

import java. util. *;

veřejná třída Databáze implementuje předmět

{

soukromé Vektorové pozorovatele;

soukromá operace řetězce;

soukromý záznam řetězce;

.

.

.

public void notifyObservers ()

{ pro (int loopIndex = 0; loopIndex

pozorovatel. aktualizace (provoz, záznam);

}

}

public void editRecord (operace řetězce, záznam řetězce)

{

toto. provoz = provoz;

tohle. záznam = záznam;

notifyObservers ();

}

}

To je vše, co potřebujete pro databázi. java, což je předmět v tomto příkladu. Předmět umožní, aby se pozorovatelé zaregistrovali, zrušili registraci a dostali oznámení, když byl databázový záznam upraven (což děláte s metodou editRecord třídy Třídy databáze). Všechno, co zbývá udělat, aby jste se dostali na cestu, je vytvořit pozorovatele sami.

Porozumění vzorům pozorovatelů - figuríny

Výběr redakce

Jak používat plumb-Bobbing v golfu - dummies

Jak používat plumb-Bobbing v golfu - dummies

Plumb-bobbing je všechno o určení, abyste viděli, kolik zlomí putt. Plumb-bobbing ukazuje obecný sklon zeleně z míče do díry. (A slábnutí je jedním z důvodů - spolu se starodávnými polyesterovými kalhotami a elektrickými vozíky - že se nongolfery smíří s golfisty.)

Použití testu Fitness-Behind the the Spine Fitness testy

Použití testu Fitness-Behind the the Spine Fitness testy

Test klubu za páteří je velmi užitečným nástrojem hodnocení pro hodnocení vaší golfové tělesné zdatnosti. Jedním z důležitých důvodů tohoto testu je určit schopnost dosáhnout a udržovat ideální rovný úhel hrudní páteře na adrese přes adekvátní pružnost v hrudi a střední páteři. Kromě toho tento test měří těsnost svalové síly ve vašem hamstringu ...

Použití sedícího testu rotace kyčle - figuríny

Použití sedícího testu rotace kyčle - figuríny

Měřit relativní stupeň flexibility otáčení boků. Tento test může zjistit, zda máte značnou těsnost v jednom nebo obou bocích, což může narušit schopnost otáčet boky během golfového houpání. Špatná rotace kyčelního kloubu je jednou z hlavních příčin ...

Výběr redakce

SharePoint jako webová platforma - dummy

SharePoint jako webová platforma - dummy

SharePoint se nazývá webová platforma, na rozdíl od webové stránky plné množství funkcí a možností, které zahrnuje. Ve skutečnosti, pokud již spravujete web SharePoint, můžete snadno vytvořit nové webové stránky přímo na stávajícím webu. Můžete také vyvíjet webové stránky s mimořádným množstvím funkčnosti ...

Funkce SharePoint Designer a nástroje pro tvorbu webových stránek - figuríny

Funkce SharePoint Designer a nástroje pro tvorbu webových stránek - figuríny

Jakýkoliv software může být na první pohled ohromující a SharePoint Designer pro použití se službou SharePoint Online není výjimkou. Společnost Microsoft se snažila, aby byl nástroj intuitivní a uživatelsky přívětivý, ale stále pomáhá rolovat kolem uživatelského rozhraní. Obrazovka je rozdělena ...

Správa webových stránek sharePoint 2010 - dummies

Správa webových stránek sharePoint 2010 - dummies

Správa webových stránek je o lidech, zásadách a procesech, které vytvářejí vaše stránky. A vaše řízení vám pomůže zjistit, jak používat všechny funkce služby SharePoint 2010, které máte k dispozici. Selhání není volba Jedním z klíčových ovladačů produktu SharePoint společnosti Microsoft byla snaha o větší kontrolu a konfiguraci v ...

Výběr redakce

Vyhnout se hackování s správným rozložením a používáním Office - dummies

Vyhnout se hackování s správným rozložením a používáním Office - dummies

Design kanceláře a použití mohou buď pomoci nebo brání fyzické bezpečnosti. Zvažte uspořádání vaší kanceláře a to, zda odrazuje nebo je povzbuzuje. Zkušenostné plánování vaší kanceláře je prvním krokem k zabránění hackingu vašich systémů. Útokové body Hackeři mohou využít některé zranitelnosti v kanceláři. Zvažte tyto body útoku: Má recepční nebo ...

Základní nastavení sítě Mac - figuríny

Základní nastavení sítě Mac - figuríny

Většina nastavení sítě v počítači Mac je automatické. Pokud chcete, můžete se podívat na výchozí síťová nastavení a změnit je podle následujících kroků:

Vyhnout se Hacks s testovacími nástroji Linuxu - dummies

Vyhnout se Hacks s testovacími nástroji Linuxu - dummies

Můžete použít mnoho bezpečnostních nástrojů na bázi UNIX, . Některé jsou mnohem lepší než ostatní. Ať tak či onak, musíte provést opatření proti hackerům a otestovat váš systém! Zdá se, že komerční nástroje založené na operačním systému Windows pracují stejně dobře jako všechny ostatní. Některé oblíbené položky jsou následující: BackTrack Linux sada nástrojů na zaváděcím CD ...