online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

JavaBeans (Szoftver komponensként való felhasznalhatósaga; Implementaciós feladatok: szerializalható, setter, getter minta)



felso sarok

egyéb tételek

jobb felso sarok
 
 
bal also sarok   jobb also sarok

JavaBeans (Szoftver komponensként való felhasználhatósága; Implementációs feladatok: szerializálható, setter, getter minta)


Mit, miért


A Java Beans egy komponensszemléletü bövítés a Jávához. Teljes egészében Jávában íródott, így aztán a létezö böngészöprogramokkal kompatibilitási problémák nélkül használható kell legyen. Ezen HTML oldal írásakor a Java Beans-ból csupán az API (Application Program Interface) specifikációja van kész, 1996 decemberére ígérik az elsö használható változatot Solaris és Windows 95 platformra. A komponensalapú programozás igen általános módszer, néhány föbb alkalmazása például a következö : 131h73b


1. Újrafelhasználható szoftver komponensek alkalmazásgenerátorok számára. Ez a közelebbi cél, a jelenlegi Beans API ezt támogatja.


2. Jáva appletek együttmüködése egymással vagy a Web-lap ill. a böngészö egyéb komponenseivel (script-ek, plug-in-ek). A Beans API olyan technológiákat fed el szabványos interfészével, mint a Netscape LiveConnect rendszere.


3. Java programok összekapcsolása jelenlegi komponensalapú rendszerekkel. Ez lehetövé tenné, hogy Jáva program konténeralkalmazás vagy beágyazott objektum legyen pl. OLE vagy OpenDoc alapú rendszerekben. Praktikusan ez azt jelenti, hogy pl. Windows környezetben Java program együttmüködhet bármilyen OLE alkalmazással, pl. az Office programokkal. Jelenleg ennek a részletei nem ismertek, ez a távolabbi cél. A Beans API-ról azt ígérik, hogy támogatni fogja a következö komponensalapú rendszereket: OpenDoc, OLE, ActiveX.


4. Hálózaton elosztott alkalmazások készítése. A Beans API együttmüködik olyan rendszerekkel, mint pl. a CORBA és egységes felületet nyújt elosztott alkalmazások számára.


Részei/Kapcsolódó API-k:


1. Introspection API: Automatikus komponensanalízis

2. Object Serialization: Jáva objektumok tárolása, aktuális állapotban elmentése és feltámasztása, átküldése a hálózaton.

3. AWT fejlesztések: Clipboard, Drag and Drop, nyomtatás. Ezek azt célozzák, hogy Jáva alkalmazások konténerei lehessenek más komponensalapú rendszereknek.


Java Beans "mag":


1. Új eseménymodell

2. "Property"-k, futás közben másik komponens által beállítható és lekérdezhetö változók.

3. Introspection API: komponensek által fogadott és küldött üzenetek és property-k automatikus felderítése.


Hogyan: példa alkalmazásgenerálásra komponensekböl


1. A felhasználó megveszi az alkalmazásgenerátort és egy komponensgyüjteményt. A komponensgyüjteményben feltámasztásra váró komponensek vannak egy archivumfájlban (JAR) elmentve. A felhasználó kiválogatja a felhasználni kívánt komponenseket és hozzáadja az alklamazásgenerátor komponensgyüjteményéhez.


2. A felhasználó elrendezi a felhasználni kívánt komponenseket. A készülö appletbe "dobálja" a komponenseket, a komponensek inicializálhatják magukat a JAR fájlba mentett állapot szerint. A komponensek emellett saját inicializálóeljárással rendelkezhetnek, amelyek segítségével a felhasználó megadhatja a komponensek tulajdonságait.


3. Komponensek összekötése. Ez a jelenlegi példában történhet szövegesen; a készülö applet kódjában a felhasználó kitölti azoknak az eljárásoknak a törzsét, melyek a komponenseket összekötik.


4. Alkalmazásgenerálás. A felhasználó az elkészült alkalmazást aktuális állapotában elmenti. Végeredményben a komponensek .class fájljai egy JAR állományba kerülnek. Az alkalmazásgenerátor egy Web-oldalt is legyárt, amellyel az applet kipróbálható.


Eseménymodell


Új eseményobjektumok: mind az java.util.EventObject osztály leszármazottjai.


Eseményfogadók java.util.EventListener interfészböl leszármazott interfészeket implementálnak, ezzel jelzik, milyen esemény(eket) kívánnak fogadni.


Eseményforrások olyam metódusokat implementálnak, amelyek segítségével az eseményfogadók regisztrálhatják magukat az eseményforrásnál.


Adaptorosztályok használhatók akkor, ha a források és fogadók nem köthetök össze közvetlenül vagy különleges kezelés (pl. eseménysor buffer) szükséges.


Példa egy egyszerü eseményre, fogadójára és küldöjére.


public class KeyKlickedEvent extends java.util.EventObject



Fö elönye az új EventObject-nek, hogy a régi Event osztállyal szemben tetszöleges számú és típusú saját mezöje lehet, továbbá az üzeneteket ezentúl az osztály típusa alapján lehet megkülönböztetni.


Az eseményfogadó egy EventListener-böl leszármazott interfészt implementál. Ebben az interfészben fogja össze az eseményfogadó metódusait. Példa:


interface KeyKlickedListener extends java.util.EventListener


Két dolog fontos itt: az egyik, hogy az interfész az EventListener-böl származik, a másik az eseményfogadó metódus "aláírása", vagyis visszatérési értéke, nevének formája, paramétereinek száma és típusa. Eseményfogadó metódusoknál ez az aláírás a következö formájú:


void <metódusnév> ( <eseménytípus> );


Végül az eseményt generáló objektumnak implementálnia kell olyan eljárásokat, melyeknél az eseményfogadók regisztráltathatják magukat. Például egy KeyKlickedEvent-eket generáló osztály a következö metódust implementálhatja.


public KeyKlickedListener setKeyKlickedListener ( KeyKlickedListener kkl )


Látható, hogy az eseményküldö regisztrációs metódusának aláírása a következö formájú:


public <interfész típus>

set<interfész típus>( <interfésztípus> )


Teljességgel a komponenst író felelössége az üzenetek generálásának és fogadásának megfeleló kezelése, maga a Java Beans semmiféle belsö üzenetkezelövel nem rendelkezik ! A Beans csupán az üzenetek, generátoraik és fogadóik kinézetét, "aláírását"rögzíti.

Property-k


A property olyan változó, amelyet a komponens elérhetövé tesz a többi komponens számára. Hasonlóan az eseménymodellhez, a Beans itt is csupán a property-ket manipuláló eljárások "aláírásait" rögzíti. Egy property-hez kell tartozzon egy beállító és egy lekérdezö eljárás annak a komponensnek a törzsében, amelyikhez a property tartozik. Az aláírás a következö formájú:


public <típus> get<property név>();


public set<property név>( <típus> );


A <típus> a property-t reprezentáló Java típus, a property név pedig az a név, ahogy a property-t a külvilág ismeri. Példa:


public Color getBackground();


public setBackground( Color ce );


A fenti példa egy komponens Background property-jét beállító és lekérdezö eljárásainak fejét mutatja. Egy property eseményt generálhat, ha beállítják vagy visszautasíthatja bizonyos határokon kívüli értékre beállítását.


Introspection


Futásidöben vagy az alkalmazásgenerátorban ki kell derítenünk, milyen eseményeket és property-ket kezel az adott komponens, erre szolgál az Introspection API. Egy komponens leírhatja önmagát egy BeansInfo struktúrában, ekkor az itt leírt tulajdonságai ismertek a környezet felé. Ha ezt nem teszi, az Introspection alrendszer "felderíti" a komponenst a kötelezö aláírásformátumok alapján.


Találat: 335


Felhasználási feltételek