az objektumorientált tervezési minták gyakorlati példákkal magyarázhatók

0 Comments

viselkedési minták

Az ilyen típusú minták az objektumok közötti kommunikációval kapcsolatosak. A legtöbb esetben a kommunikációs objektumok közötti függőségek ezeken a mintákon keresztül csökkennek, ami jobb szoftvertervezéshez vezet.

felelősségi lánc

Ez a minta létrehoz egy vevő objektumok láncát egy kéréshez. Ezzel elkerülhető, hogy egy kérés feladóját összekapcsolják a Vevővel, és több objektum számára is lehetővé válik a kérés kezelése. A fogadó objektumok összekapcsolódnak., Az alábbi példában egy middleware egységek lánca kerül kialakításra. Az e-mailt és a jelszót tartalmazó kérés továbbításra kerül a láncban. A lánc új elemei könnyen hozzáadhatók.

parancs

a parancsmintában egy objektumot használnak a művelet végrehajtásához vagy esemény későbbi indításához szükséges összes információ beillesztésére. Amint az alább látható, az ActionOpen meghatározza a műveletet, valamint azt az objektumot, amelyen a műveletet végrehajtják., További információra nincs szükség, egy másik objektum, itt menü, végrehajthatja a műveletet.

Tolmács

A Tolmács minta határozza meg a képviselet a nyelvtan, amely képes értelmezni a mondatokat, hogy a nyelvet. A plusz objektum alatti kódrészletben az “operand1 + operand2” értelmezhető, és tudja, mit kell tennie ezzel a kifejezéssel. További tolmácsok adhatók hozzá anélkül, hogy a szerkezetet túlságosan megváltoztatnák. Az elemző ezután tolmácsokat használ a bemenet megértéséhez.,

Iterator

Az Iterator használt traverse egy konténer adatokhoz való hozzáférést a tároló elemei nélkül kell tudni, hogy a mögöttes struktúra. Ezenkívül új keresztirányú változatok adhatók hozzá az objektumok interfészének vagy magának az adatszerkezetnek a megváltoztatása nélkül.
az alább látható csatornák egymást követő módon férhetnek hozzá a csatornákhoz. A RemoteControl objektumnak nem kell érdekelnie a csatornák szervezését. A RandomChannelSurfer például sok probléma nélkül hozzáadható.,

Mediátor

ha két vagy több objektumnak együtt kell működnie, akkor a Mediátormintát lehet alkalmazni. Különösen akkor, ha az objektumok nem ismerik egymást, ha nem szabad szorosan összekapcsolni őket, vagy kölcsönhatásuk összetett, ez a minta segíthet.
az alábbi példában van némi interakció szükséges UI elemek. Ez az interakció a hitelesítésen keresztül történikdialog közvetítőként. Így az interakció nincs meghatározva az egyik résztvevő objektumban,hanem a közvetítőbe kerül.,

Memento

a Memento minta akkor hasznos, ha egy objektum bizonyos állapotát el kell menteni a későbbi használathoz. Ezáltal nem sérti az objektum végrehajtási részleteinek kapszulázását. Ezt fel lehet használni például egy visszavonási mechanizmus végrehajtására.

Observer

a observer minta observer Observer objektumok feliratkoznak egy megfigyelhető objektumra, amelyet minden alkalommal értesíteni kell, amikor a megfigyelhető megváltoztatja adatait., A megfigyelők lazán össze vannak kapcsolva, és futás közben is hozzáadhatók és eltávolíthatók.
ami azt illeti, hogy a megfigyelő végül hogyan kapja meg az adatokat a megfigyelhető, két változat létezik: push and pull. Az alábbi kód mutatja a húzási változatot, amely rugalmasabb, mivel ebben az esetben a megfigyelhetőnek nem kell tudnia, hogy a megfigyelő hogyan akarja megkapni az adatokat, de a megfigyelő az adatokat a kívánt módon lekérheti.

állapot

az Állapotmintázat lehetővé teszi, hogy egy objektum megváltoztassa a viselkedését, amikor a belső állapota megváltozik., Ez a minta hasonló a stratégiai mintához, de ebben az esetben belsőleg döntenek arról, hogy az objektumok hogyan viselkednek. Ez különösen akkor hasznos, ha összetett körülmények határozzák meg, hogyan kell viselkednie az objektumnak. Az új államok a meglévő államoktól függetlenül adhatók hozzá.

stratégia

a stratégiai minta összefüggésében több változat létezik egy algoritmushoz, ahol az egyik változatot futási időben kell végrehajtani.,
az alábbi példában egy Kompresszorobjektum használható a futási időben definiált két különböző algoritmus egyikével. A műveletet végrehajtó módszer (createarch) ezután alkalmazza a kiválasztott algoritmust.

sablon

a Sablonmintázat olyan alosztályok struktúráját határozza meg, amelyekben az algoritmus lépései és sorrendjük meg van határozva. Ez biztosítja, hogy az alosztályok pontosan ugyanazokat a lépéseket kövessék, jobb áttekintést és következetességet biztosítva., Azt is lehetővé teszi, hogy meghatározza az alapértelmezett megvalósítások lépéseket lehet felülbírálni alosztályok.
amint az az alábbiakban látható, a DataParser-től örökölt összes Parser pontosan ugyanazokat a lépéseket követi, amikor az elemzés () végrehajtásra kerül. Ez biztosítja például, hogy minden elemző bezárja a fájlokat, majd naplózza az állapotot.

Látogató

A Látogató minta lehetővé teszi, hogy alkalmazni egy vagy több művelet egy meghatározott tárgyak run-time anélkül, hogy a műveletek szorosan összekapcsolva a tárgy szerkezete.,
ezzel megvalósítjuk a kettős küldést, ahol egy függvényhívás különböző konkrét funkciókra függ a két objektum futási idejétől. Az alábbi példában egyrészt vannak útvonalelemek, másrészt a látogató objektumok, amelyek mindegyike különböző funkciókat hajt végre az útvonalelemeken. Ha a jövőben több látogató kerül hozzáadásra, az útvonal elemnek nem kell megváltoznia.


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük