EJB 2.x – Entity Beans (deklarácia component rozhraní 2.)
V predchádzajúcom článku sme začali vytvárať rozhrania pre entity beans, ktoré budeme potrebovať pre náš príklad elektronickej aukcie. V tomto článku budeme pokračovať, pričom si vytvoríme a popíšeme ďalšie component rozhrania a niekoľko pomocných tried. Tento článok bude teda prevažne naplnený zdrojovým kódom.
Keď si pozorne pozriete zdrojový kód rozhrania EnglishAuction zistíte, že obsahuje referencie na Item
, čo je lokálne rozhranie pre entity bean, ktorá bude reprezentovať položku vloženú do aukcie. Toto rozhranie bude pozostávať výlučne z get
metód, ktorých úlohou bude vrátiť požadované vlastnosti danej položky aukcie. Zjednodušenie je v predpoklade, že jednotlivé položky určené na dražbu už v systéme existujú a nemusíme ich teda vytvárať alebo modifikovať. Nasleduje výpis lokálneho rozhrania Item
:
Odhliadnuc od vhodnosti tejto zmeny, ak by ste chceli konvertovať lokálne rozhranie EnglishAuction
na remote rozhranie, jednoducho vám stačí zmeniť extends klauzulu na EJBObject
a pridať do každej metódy signalizáciu vyhodenia výnimky RemoteException
. Keďže toto rozhranie sprístupňuje svojmu okoliu aj metódy rozhrania Item
a remote rozhranie nemôže sprístupňovať metódy lokálneho rozhrania, museli by sme následne konvertovať aj rozhranie Item
.
Rozhranie EnglishAuction
ďalej referencuje lokálne rozhranie Bidder
, za účelom správneho prepojenia danej ponuky s konkrétnym dražiteľom. Toto rozhranie podobne ako Item
pozostáva z niekoľkých get
metód a z dvoch metód na zistenie fakturačnej adresy a adresy na doručenie tovaru. Tieto metódy používajú objekt AddressView
rovnakým spôsobom, ako rozhranie EnglishAuction
používa objekt BidView
.
Nasledujúce dva listingy zobrazujú zdrojový kód tried BidView
a AddressView
. Tieto triedy poskytujú jednoduché dátové štruktúry, ktoré môžu entity beans využiť pre poskytovanie informácií o svojich závislých objektoch. Tieto triedy sú navrhnuté tak, aby sa zvýraznil fakt, že manipulácia s hodnotami ich vlastností nemá dopad na perzistentné dáta jednotlivých entity beans. Aktualizácia tohto typu dát prebieha obvykle tak, že sa vytvorí nová inštancia niektorej z „view“ tried s požadovanými hodnotami a predá sa niektorej z update metód patriacich k entity beans.
Objekt triedy Bid
je nemenný (immutable), pretože určite nechceme, aby sa výška ponuky od dražiteľa akokoľvek zmenila, po svojom uskutočnení. Z toho dôvodu sa možnosť aktualizácie bude vzťahovať skôr na objekt triedy Address
.
View objekty, zobrazujúce stav iného objektu, nemusia byť automaticky závislé objekty. Napríklad rozhranie EnglishAuction
tiež poskytuje metódu, ktorá vracia aktuálny stav aukcie samotnej. Táto možnosť, ktorá je veľmi dôležitá pri práci so vzdialenými klientmi, poskytuje jednoduchý spôsob ako na jeden krát zistiť stav entity, bez nutnosti opakovaných volaní. Nasledujúci výpis zobrazuje zdrojový kód triedy AuctionDetailView
:
V rámci uvedených tried by bolo vhodné vložiť do jednotlivých deklarácií metód ošetrenie potenciálnych výnimiek, ktoré môžu vzniknúť. V niektorom z budúcich článkov sa budeme podrobne venovať ošetreniu výnimiek pri tvorbe EJB, pretože to je veľmi dôležitá súčasť návrhu entity beans a ich rozhraní. Nasledujúce dva výpisy zobrazujú triedy výnimiek, ktoré sú referencované v rozhraní EnglishAuction
:
Súhrn
V tomto článku sme ukončili vytváranie potrebných component rozhraní a ich závislých tried. Podľa špecifikácie EJB 2.0 sa pojmom component interface súhrnne odkazuje na local interface a remote interface. Podľa toho, pre akého klienta je rozhranie určené.
Všetky vytvorené rozhrania si môžete stiahnuť.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024 -
Jak se chránit před podvody na internetu – část 1
8. října 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024