The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by kerdesre.a.valasz, 2023-03-21 07:17:23

Java programozás

25.Tervezési minták 251. oldal


public String getLast() {
return last;
}
}
Nézzük meg a két igen egyszerű leszármazott osztályt is.
Az első leszármazottunk a név megadásánál az első ( szóközös) megadást feltételezi.

class FirstFirst extends Namer {
public FirstFirst(String s) {
int i = s.lastIndexOf(" ");
if (i > 0) {
first = s.substring(0, i).trim();
last =s.substring(i+1).trim();
} else {
first = "";
last = s;
}
}
}
A másik leszármazott a vessző karaktert keresi elválasztóként:

class LastFirst extends Namer {
public LastFirst(String s) {
int i = s.indexOf(",");
if (i > 0) {
last = s.substring(0, i).trim();
first = s.substring(i + 1).trim();
} else {
last = s;
first = "";
}
}
}
A tényleges példányosítást (gyártást) a következő osztály végzi:
class NameFactory {
public Namer getNamer(String entry) {
int i = entry.indexOf(",");
if (i>0)
return new LastFirst(entry);
else
return new FirstFirst(entry);
}
}
Elegendő a getNamer metódust a nevet tartalmazó String paraméterrel meghívni, ered-
ményül pedig egy Namer (leszármazott) objektumot kapunk.
Megjegyezés: A példa láttán felmerülhet az a kifogás, hogy elegendő lett volna a Namer osztály konst-
ruktorában ezt a kétféle inputot megkülönbözteti. Ennél a példánál tényleg járható lenne ez az út is.
A példa egyszerűsége abban rejlik, hogy a leszármazottak csak a konstruktorunkban térnek el egymástól.
Más összetettebb szituáció esetén a leszármazottak érdemi működése is jelentősen eltérhet egymástól.

Legerősebb érvként pedig azt érdemes meggondolni, hogy ha a bemutatott struktúrát kell bővítenünk egy
újfajta viselkedéssel, akkor elegendő egy új leszármazott osztály létrehozása és a getNamer metódus bőví-
tése, a többi osztályhoz egyáltalán nem kell hozzányúlni. Ez egy nagyobb alkalmazás esetén nagyon erőtel-
jes érv lehet.


252. oldal Java programozás (1.3. verzió)


25.2. Szerkezeti minták


A szerkezeti minták segítségével előírhatjuk, hogy az egyes osztályokból vagy objektu-
mokból hogyan álljon elő egy komplexebb struktúra.

Az osztály minták célja, hogy olyan öröklési hierarchiát alakítsunk ki, amelyik jól hasz-
nálható programfelületet nyújt. Ezzel szemben az objektum minták az objektumok ösz-
szeillesztésének célszerű módjait alkalmazzák.

Az Illesztő (Adapter) mintára akkor van szükség, ha különböző felületű osztályoknak
kell kapcsolatba hozni. Így tulajdonképpen a két félnek nem is kell egymásról konkrétan
tudni, elég, ha a köztük lévő illeszti mindkét felet.
A Híd (Bridge) minta ezzel szemben nem kényszerhelyzet, hanem tudatos tervezés miatt
ad valami más felületet. A szolgáltatás felületét (interfészét) és megvalósítását (imple-
mentációját) tudatosan választja szét.
A Homlokzat (Facade) mintával egy nagyobb komponensnek egységes felületet (inter-
fészt) tudunk nyújtani.

A Pehelysúlyú (Flyweight) minta lehetőséget ad arra, hogy elrejtsünk egy objektumot, és
azt csak akkor hozzuk elő, ha arra tényleg szükség lesz.


25.3. Viselkedési minták


A viselkedési minták (a szerkezeti mintákkal szemben) nem az állandó kapcsolatra, ha-
nem az objektumok közötti kommunikációra adnak hatékony megoldást.
A Megfigyelő (Observer) minta célja, hogy egy objektum állapotváltozásainak figyelését
lehetővé tegye tetszőleges más objektumok számára. A figyelő pozícióba feliratkozással
juthatunk, de a leiratkozás is bármikor megejthető.
A Közvetítő (Mediator) minta célja, hogy két – egymással kommunikálni képtelen osz-
tály között közvetítő szerepet töltsön be. Érdekesség, hogy a két közvetve kommunikáló
osztálynak semmit sem kell egymásról tudnia.
A Felelősséglánc (Chain of Responsibility) minta az objektumok közül megkeresi a fele-
lőst. Egyszerű példaként el lehet képzelni egy böngésző alkalmazás ablakát, ahol a felület
tulajdonképpen többszörösen egymásba ágyazott komponensek segítségével épül fel.
Egy egérkattintás esetén a főablak-objektumból kiindulva (a vizuális tartalmazás men-
tén) egyre pontosabban meg tudjuk határozni, hogy a kattintás melyik doboz, melyik be-
kezdés, melyik űrlap, melyik űrlap-elem stb. területén történt.

A Stratégia (Strategy) minta egy algoritmust egy osztályba zár. Így az algoritmus későb-
bi leváltása csak az ős egy másik leszármazottját fogja igényelni.
Végül a Bejáró (Iterator) minta már ismerős lehet a Java Iterator interfésze miatt: fel-
adata a bejárás biztosítása pl. tároló objektumokon.


26.Java fejlesztőeszközök 253. oldal



26.Java fejlesztőeszközök



Bármelyik fejlesztőeszközt is választjuk, telepítsük először a fejlesztőkörnyezetet és a do-
kumentációt az 1.1 fejezetben leírt módon.


26.1. JCreator


A JCreator Java programozásra alkalmas editor. A program letölthető a http://www.jc-
reator.com/download.htm címről. A Pro változat 30 napig működő demó, de letölthető
a korlátlan ideig használható (freeware), bár némileg kevesebb tudású Lite Edition vál-
tozat is.

















































26.2.Netbeans

A Netbeans a Sun saját fejlesztőkörnyezete a Java platformokhoz.

A J2SE változattal közös csomagban is letölthetjük, így a telepítés is nagyon egyszerű
lesz. (A közös csomag a Sun honlapjáról tölthető le.)

A http://www.netbeans.org/ címről nem csak az alapcsomagot, hanem különböző ösz-
szeállításokat és kiegészítőket is letölthetünk. Ha nem a J2SE-vel közös csomagot tele-
pítjük, akkor (a JCreatorhoz hasonlóan) a Netbeanst érdemes később telepíteni.


254. oldal Java programozás (1.3. verzió)


26.2.1 Alapvető használat

Ebben a részben egy egyszerű alkalmazás készítésének lépéseivel ismerkedünk meg.


Projekt létrehozása

A Netbeans indítása után File > New Project:




















Egy alapvető Java projekthez a General csoport Java Application eleme alkalmas.









































Következő lépésként a projekt nevét és elérési útját kell megadnunk.
(A projekt alkalmas arra, hogy egy több osztályból álló alkalmazás forrásállományit egy
egységként kezeljük.)

Beállíthatjuk projektünket elsődlegesnek (Main project), és megadhatjuk a fő osztályunk
nevét is:


26.Java fejlesztőeszközök 255. oldal





































A varázsló futásának eredménye jól látható a következő képen:


256. oldal Java programozás (1.3. verzió)


26.3.Eclipse


Az Eclipse egy több platformon (Windows mellett Linux, Solaris, AIX, HP-UX, Mac OS-
X) rendelkezésre álló, több programozási nyelvet (Java, PHP, C/C++, stb.) támogató és
többfajta fejlesztői környezetben (asztali alkalmazásfejlesztés, webfejlesztés, mobil al-
kalmazásfejlesztés, UML2 szerkesztés, vizuális szerkesztés stb.) alkalmazható nyílt for-
rású szoftverfejlesztő projekt.




























Ebben a fejezetben a Java fejlesztéshez szükséges minimális alapismeretekről lesz szó.

Megjegyzés: Az Eclipse igényli a Java SDK telepítését, tehát az 1. fejezetben ismertetett módon először a
fejlesztőkörnyezetet kell letölteni és telepíteni!


26.3.1 Alap tulajdonságok

Az Eclipse egy teljesen a felhasználó igénye szerint kialakítható felülettel rendelkezik
(melyet perspektívának hívnak), egyszerű (fogd és vidd) felületen átpakolhatjuk a meg-
nyitott ablakokat (nézeteket). Több felületet is kialakíthatunk magunknak az éppen ak-
tuális munkától függően (programozás, HTML szerkesztés, stb.), melyek között a rend-
szer automatikusan is tud váltani, illetve mi is váltogathatunk.

Számos nézet áll rendelkezésünkre alapkiépítésben, illetve ezek listája beépülő modu-
lokkal tovább bővíthető. Ilyen a szerkesztőmező és a projekt fájlok listája (navigator)
mellett a problémák, tennivalók listája, a kivonat doboz (az aktuális állomány váza:
XML szerkezet, vagy a függvények listája, stb.).
A beépített szerkesztő főleg Java és kapcsolódó kódszínezéseket támogat, de ezt a Col-
2
orer plugin segítségével kiegészíthetjük: így rengeteg nyelv áll rendelkezésünkre, illetve
ha nem találunk egyet, XML leírók segítségével kibővíthetjük a rendszert.













2 http://colorer.sourceforge.net/


26.Java fejlesztőeszközök 257. oldal
















































26.3.2 Az Eclipse beszerzése és üzembe helyezése

Java fejlesztéshez mindenekelőtt a http://www.eclipse.org/downloads/ oldalról le kell
tölteni az Eclipse SDK nevű termék legfrissebb stabil verzióját. Mivel a letöltött állo-
mány egy ZIP formátumú tömörített állomány, kézzel kell kicsomagolnunk, pl. a C:\ec-
lipse könyvtárba.
További telepítésre nincs szükség, csupán az indítás után néhány alapbeállítást (konfi-
gurálást) kell megtenni. Ízlés szerint parancsikont is lehet létrehozni az Exclipse.exe szá-
mára.
Az első futtatás alkalmával be kell állítanunk a munkaterületünket, vagyis ki kell jelöl-
nünk azt a könyvtárat, ahol a fejlesztéshez kapcsolódó állományainkat tárolni szeret-
nénk. A későbbiekben itt hozhatunk létre projekteket, amelyek más-más alkönyvtárban
jönnek létre.

A konfigurálás első lépéseként a Java fejlesztőkörnyezet kell beállítanunk: Window >
Preferences, majd Java > Installed JREs. Itt jó esetben a telepített futtatókörnyezetet
fel is ajánlja. Szükség esetén lehet módosítani is a beállításokat.


258. oldal Java programozás (1.3. verzió)













































Érdemes még átnézni a General > Wokspace és az egyéb General beállításokat is.


Click to View FlipBook Version