Java minta: leírás, jellemzők, példák

. A problémás feltételek kibővítése megkövetelheti az azonos típusú műveletek megismétlését egy bizonyos sorrendben. Az ilyen műveletek segítenek a programozóknak sablonok vagy Java Minta (JP) végrehajtásában, amelyek automatizálják az objektumok létrehozását és azok kapcsolatait a felhasználó munkaterületén. A csapatok használhatják a JP-t a hibák csökkentésére, a modellezés egyszerűsítésére és a teljesítmény javítására. A tervezők JP-t hoznak létre a meglévő referencia implementációkból és mintamegoldásokból azonosított információk felhasználásával.

A tervezési minta szerkezete

A tervezési minta szerkezete

Megoldásfejlesztő csapatok Java telepítése A tervezési minták a varázsló segítségével sablonokat alkalmaznak a munkaterületen. Ezek a varázslók, amelyek megfelelnek a legjobb gyakorlatoknak, csökkentik a kódolás és a komplex konfiguráció szükségességét.

Tipikus JP szerkezet:

  1. Az adatmodell tartalmazza az összes olyan entitást és adatelemet, amely megvalósítja azt a sablont, amelybe az adatok a munkaterületen vannak rendezve. Ez biztosítja a várt felhasználói bevitelt, és alkalmazza azt a munkaterületre, és beépített súgórendszerrel is rendelkezik, amikor a felhasználó elindítja a Java Pattern designt.
  2. Felhasználói Felület. A fejlesztők a JP Design Wizard segítségével lépnek kapcsolatba a tervezési mintákkal. Információkat gyűjt és a varázsló különböző oldalain rendezi, kiegészítve tippekkel vagy beépített segítséggel, a felhasználó kérésére.
  3. Végrehajtási Processzor. Amikor a felhasználó befejezi a Java Pattern Design varázsló használatát, és rákattint a gombra "Kész", a tervezősablon a felhasználó által megadott adatokat alkalmazza a projektben meghatározott entitásokra és elemekre. Ezt követően a JP objektumokat és adatelemeket generál és rendez a munkaterületen.

Fejlesztési ciklus szekvencia

Fejlesztési ciklus szekvencia

A tervezési minta életciklusa a JP azonosításával és elszigetelésével kezdődik. A referencia-implementációval végzett munka során a tervezők azonosítanak egy megismételhető elrendezést, amely tartalmazza az erőforrásokat és az erőforrás-kapcsolatokat a munkaterülettel. A Java tervezési minta életciklusának feladatait két különböző résztvevő végzi, a tervező, aki létrehozza és elosztja az elrendezést, valamint az üzemeltető, aki telepíti a tervezési mintákat és futtatja a JP-t a megoldás fejlesztésének megkönnyítése érdekében.

A tervezési feldolgozás sorrendje:

  1. A referencia implementációkban az Általános modellezési feladatok és a legfontosabb erőforrások, a megoldások példái és a legjobb gyakorlatok kiértékelésre kerülnek, és megállapítják, hogy mely ismételhető feladatok automatizálhatók a JP-ben.
  2. A JP fejlesztése az azonosított erőforrások kulcsfontosságú összetevőként történő felhasználásával.
  3. , tesztelje a kapott tervezési mintákat a Design Studio környezetben történő futtatással.
  4. A JP beépítése az objektumprojektre és a frissítési webhelyre mutató hivatkozást tartalmazó bővítményprojektekbe.
  5. Funkciók beállítása szerepüktől és céljaiktól függően.
  6. Futtassa a tervezési mintákat a tervezési megoldás befejezéséhez.

Minta fájl.xml

Fájl minta.xml

Minden tervezési sablonnak van egy" minta " fájlja.xml", amely meghatározza a JP modell tartalmát. A fájlhoz beállított magas szintű attribútumok mellett például a névtér, sablon azonosító és név attribútumok. A szakaszban "XML séma" egy DesignPattern nevű fájl.xsd a Design Studio szoftvercsomagban elérhető séma mappában. A fejlesztő a tervezési minta verziószámával meghatározhatja, hogy a tervezési minta nagyobb vagy kisebb kiadás, vagy egy frissítőcsomag kiadásának része.

A varázsló "Bevezetés" oldalán található olyan információ, amely leírja a JP használatát. A tervezési minta szakaszai:

  1. Érvényes célprojektek, ahol az erőforrások mentésre kerülnek a tervezési minta alkalmazásakor.
  2. A helyőrzők olyan információkat jelentenek, amelyeket a JP-t alkalmazó felhasználónak be kell írnia.
  3. A varázslóban megjelenő oldalak. A JP tokenek szervezettek mint oldalak a varázslóban, ahol minden oldal egy csoport. Megadhat tetszőleges számú token csoportok.
  4. A JP-ben szereplő erőforrások listája, amely ezeket az erőforrásokat a felhasználó munkaterületére másolja.
  5. A JP varázsló által megadott alapértelmezett adatok, automatikusan token nevek feltöltése.

A Java megközelítése a tervezéshez

A tervezési minták már meg vannak határozva, és iparági szabványos megközelítést biztosítanak egy ismétlődő probléma megoldására, így időt takarít meg, ha bölcsen használják. A tervezési minták használata elősegíti az újrafelhasználást, ami megbízhatóbb és könnyebben karbantartható kód létrehozásához vezet. Ez segít csökkenteni a szoftvertermék teljes birtoklási költségét (TCO), és megkönnyíti a kód megértését és hibakeresését. Ez gyorsabb fejlődéshez vezet, és az új csapattagok könnyen képzettek az új programokban.

A Java tervezési minták három kategóriába sorolhatók - design for creation, structure és behavior. A kreatív tervezési megoldások megoldást nyújtanak egy objektum létrehozására a legjobb módon az adott helyzetekhez.

A Singleton minta korlátozza az osztálypéldányok létrehozását, és biztosítja, hogy Java virtuális gép az osztálynak csak egy példánya van. Úgy tűnik, hogy ez egy nagyon egyszerű JP, de amikor a megvalósításról van szó, sok problémája van. A Singleton sablon megvalósítása mindig is ellentmondásos téma volt a fejlesztők körében, a tervezés egyik legvitatottabb témája.

Gyári minta

Gyári minta

A Java gyári mintát akkor használják, ha több alosztályú szuperosztály van. Ez a sablon felelősséget vállal egy osztály példányának létrehozásáért egy ügyfélprogramból egy gyári osztályba. Alkalmazhatja a Singleton sablont a gyári osztályra, vagy statikusvá teheti a gyári módszert. Ez az egyik legszélesebb körben használt JP.

Az absztrakt gyár hasonló a gyári mintához, amely a megadott bemenet alapján különböző alosztályokat ad vissza, és ennek eléréséhez "if-else "vagy" switch " operátort használ. Az absztrakt gyári sablonban megszabadultak az "if-else" blokktól, minden alosztályhoz elhagyták a factory osztályt, amely után az Abstract Factory visszaad egy alosztályt a bemeneti gyári osztály alapján.

JP Builder került bevezetésre, hogy megoldja néhány gyári és absztrakt gyári problémák, amikor egy objektum tartalmaz sok attribútumot. A Java Builder Pattern kiküszöböli a nagyszámú opcionális paraméter és következetlen művelet problémáját azáltal, hogy lépésről lépésre módot ad egy objektum felépítésére és egy olyan módszerre, amely visszaadja a végső objektumot.

Szerkezeti tervek

Az adapter tervezési mintája az egyik szerkezeti tervezési minta, amelyet két független interfész közötti együttműködésre használnak. Az ezekhez a nem kapcsolódó interfészekhez kapcsolódó objektumot adapternek nevezzük. Például a valós életből, akkor fontolja meg a mobil töltő mint adapter, mivel Az akkumulátor töltéséhez 3 V szükséges, a szokásos kimenet pedig 120 V (USA) vagy 220 V (Oroszország)feszültséget ad ki. Így a mobil töltő adapterként működik a mobil töltőaljzat és a fali aljzat között.

A JP kompozit minta az egyik szerkezeti tervezési minta, amelyet akkor használnak, amikor egy rész-egész hierarchiát kell ábrázolni, olyan struktúrát kell létrehozni, amely a benne lévő objektumokat ugyanúgy kezeli.

A diagram egy valós példa, olyan objektumokból álló szerkezet, mint egy kör, vonalak, háromszögés más geometriai alakzatok. Amikor egy programozó színnel tölti ki a rajzot, mondjuk piros, ugyanazt a színt alkalmazzák a JP objektumaira is. Itt a rajz különböző részekből áll, és mindegyiknek ugyanazok a műveletei vannak.

Proxy Sablon

A proxy sablon célja, hogy "helyettesítőt vagy helyőrzőt biztosítson egy másik objektumhoz a hozzáférés ellenőrzése érdekében". Maga a meghatározás nagyon világos, a JP proxyt akkor használják, amikor a funkcionalitáshoz ellenőrzött hozzáférést kell biztosítani.

Tegyük fel, hogy van egy osztály, amely képes végrehajtani néhány parancsot a rendszerben, de ha ezt a programot át kell adnia egy ügyfélalkalmazásnak, akkor komoly problémái lehetnek. Az ügyfélprogram parancsot adhat ki néhány rendszerfájl törlésére vagy néhány nem szükséges paraméter megváltoztatására.

Proxy Sablon

A Flyweight tervezési mintát akkor használják, ha sok osztályobjektumot kell létrehoznia. Mivel minden objektum memóriaterületet fogyaszt, ami döntő fontosságú lehet a kis memóriával rendelkező eszközök, például a mobil eszközök vagy a beágyazott rendszerek számára, a JP egyszerűsített kialakítással alkalmazható a memória terhelésének csökkentése érdekében az objektumok megosztásával. A string pool megvalósítása Java-ban az egyik legjobb példa a Flyweight sablonok megvalósítására.

Homlokzati JP segítségével kliens alkalmazások könnyen kölcsönhatásba a rendszerrel. Tegyük fel, hogy van egy alkalmazás egy sor interfésszel a MySQL / Oracle adatbázisok használatához különböző típusú jelentések létrehozásához, például HTML jelentés, PDF jelentés stb. Így a felhasználónak más interfészkészlete lesz munkavégzéshez különböző típusú adatbázisokkal.

Az ügyfélalkalmazás ezeket az interfészeket használhatja a szükséges adatbázis-kapcsolat megszerzéséhez és jelentések készítéséhez. De amikor a komplexitás növekszik, vagy az interfész viselkedésének nevei zavaróak, az ügyfélalkalmazás számára nehéz lesz kezelni. Így alkalmazzák a homlokzati sablont, és egy burkoló felületet biztosítanak a meglévő tetején, hogy segítsék az ügyfélalkalmazást.

Interfész hierarchiák

Amikor egy felhasználó interfész hierarchiák mindkét interfészek, valamint megvalósítások, akkor JP "A híd" arra szolgál, hogy elkülönítse az interfészeket a megvalósítástól, és elrejtse a megvalósítás részleteit az ügyfélprogramoktól. Az adaptermintához hasonlóan ez is az egyik szerkezeti tervezési technika. JP végrehajtás "A híd" követi azt az elképzelést, hogy inkább a kompozíciót részesítsék előnyben, mint az örökséget.

"Lakberendező" az objektum funkcionalitásának megváltoztatására szolgál futás közben. Ugyanakkor az azonos osztály más példányait ez nem érinti, így az egyes objektum megkapja a módosított. JP viselkedés "Lakberendező" az egyik szerkezeti tervezési minta, amelyet absztrakt osztályok vagy interfészek megvalósítására használnak a kompozícióval.

A felhasználók az öröklődést vagy a kompozíciót használják az objektum viselkedésének kiterjesztésére, de ez fordítási időben történik, és az osztály minden példányára vonatkozik. A sablon végrehajtása során nem adhat hozzá új funkciókat.

Java Regex Minta Reguláris Kifejezések

Az alkalmazások gyakran szövegfeldolgozást igényelnek olyan funkciókhoz, mint a szókeresés, az e-mail ellenőrzés vagy az XML dokumentum integritása. Ez gyakran magában foglalja a minta illesztését. Az olyan nyelvek, mint a Perl, a sed vagy az awk, javítják a mintaillesztést reguláris kifejezések, karakterláncok használatával, amelyek meghatározzák a megfelelő szöveg megtalálásához használt mintákat. Ahhoz, hogy egy sablont a programozási nyelv A Java megkövetelte a StringTokenizer osztály sok charAt substring módszerrel karakterek vagy tokenek olvasásához a szövegfeldolgozáshoz. Ez gyakran összetett vagy "piszkos" kód.

A programozók számára jobb, ha reguláris kifejezéseket használnak a java - val.util.regex csomag, példaként a következő gyakori forgatókönyveket használva:

  1. Egyszerű szó helyettesítés.
  2. E-Mail Ellenőrzése.
  3. Vezérlő karakterek eltávolítása egy fájlból.
  4. Fájl Keresés.

Annak érdekében, hogy lefordítsa a kódot ezekben a példákban, és használjon reguláris kifejezéseket az alkalmazásokban, telepítenie kell a J2SE verziót 1.4.

A csapatkommunikáció megvalósítása

A parancssablon a kommunikációs veszteség végrehajtására szolgál "a kérés-válasz modell". Ebben a kérés elküldésre kerül a hívónak, a meghívó pedig továbbítja azt a kapszulázott parancsobjektumnak. A parancsobjektum egy kérést továbbít a megfelelő Vevőmódszerhez egy adott művelet végrehajtásához.

Tegyük fel, hogy meg kell adnia egy fájlrendszer-segédprogramot a fájl megnyitására, írására és bezárására szolgáló módszerekkel, és több operációs rendszert kell támogatnia, mint például a Windows és a Unix. A fájlrendszer segédprogram megvalósításához először létre kell hoznia a címzett osztályokat, amelyek ténylegesen elvégzik az összes munkát. Mivel a kódolás a Java interfészek szempontjából történik, lehet, hogy van egy FileSystemReceiver interfész, valamint annak végrehajtási osztályai különböző operációs rendszer fajták, mint például a Windows, Unix, Solaris és mások.

JP "A fordító" a nyelv nyelvtani ábrázolásának meghatározására szolgál, tolmácsot biztosít a nyelvtan használatához. A minta legjobb példája a fordító "Java", amely értelmezi a forráskódot "Java" byte-ra, érthető a JVM számára. A Google Translator egy példa a Java tolmács mintáira is, ahol a bemenet az egyik nyelven, a kimenet pedig egy másik nyelven lehet.

"A látogató" akkor használatos, ha műveletet kell végrehajtania hasonló objektumok csoportján. Használhatja a működési logika áthelyezésére az objektumokból egy másik osztályba. Például egy bevásárlókosár, amelybe különféle típusú árukat adhat hozzá, amikor megnyomja a "Checkout" gombot, kiszámítja a fizetendő teljes összeget.

Példa Java Util Regex mintára

A UNIX/Linux shell szkriptből történő fordítást akkor használják, ha olyan körülmények merülnek fel, amikor a fejlesztőnek nincs" Ant "vagy" Ant-alapú " projektje az egyéni fordításhoz "Java"-Programok. Ilyen esetekben általában Linux shell szkriptet használnak a Java osztályok összeállításához. Egy nagyon jó haszna, hogy a script teszi a felhasználó számára a dinamikus felvétele az összes Jar fájlokat, amelyek szükségesek a classpath. Tehát a Jar fájlok ott vannak, fordításuk nagyon egyszerű a parancssorból.

A program két feltételezést tesz:

  1. A felhasználó a megnevezett szint feletti könyvtárban van " src", amely tartalmazza " java" fájlok.
  2. A felhasználó a megnevezett szint feletti könyvtárban található " lib", az összes" Jar " fájl, amelyre a programnak szüksége van, ebben a könyvtárban található.

Minta Java Szkript Fordítása.

Minta Java Szkript Fordítása

Reguláris kifejezések "Java" Az Util a Pattern and Matcher osztályok használata. Használhatja a karakterláncot.matches() módszer az illesztés végrehajtásához. Bizonyos esetekben egy kicsit bőbeszédűbb módszert kell használnia a munkamenet lebonyolítására, de olyan, amely végül nagyobb rugalmasságot biztosít és javíthatja a teljesítményt. Különösen a java két osztálya.util.regex csomagot használnak: minta és Matcher. A fotókat az alábbiakban mutatjuk be.

A csomag két osztálya

A Java Regex Minta eljárás így néz ki:

  1. Fordítsd le a kifejezést egy objektumba "Minta".
  2. Hívja meg a statikus módszermintát.compile (), átadva a kifejezést. Ez a módszer egy minta objektumot ad vissza. Ennek az objektumnak a végrehajtása a sablon belső ábrázolása olyan formában, amely hatékonyan teszi lehetővé a leképezések végrehajtását.
  3. Amikor leképezést kell végrehajtani, egy Matcher objektum jön létre.
  4. Annak ellenőrzése érdekében, hogy egy adott sablonszöveg megegyezik-e, a metódusillesztés() a karakterlánc átadásával kerül az objektumsablonra.
  5. A Java Pattern Matcher mérkőzések meghívásra kerülnek, amely egy logikai értéket ad vissza, amely jelzi, hogy a () metódusnak átadott karakterlánc megfelel-e egy reguláris kifejezésnek.

Így a tervezési minták nagyon népszerűek szoftverfejlesztők, mert egy tipikus probléma jól leírt megoldását képviselik. Ezek olyan asszisztensek, amelyek automatizálják az összetett ismétlődő feladatokat, és lehetővé teszik a különböző szintű képzettséggel rendelkező csapattagok számára, hogy elvégezzék azokat.

Cikkek a témában