Avatar billede wazzappp Nybegynder
08. marts 2002 - 13:34 Der er 1 løsning

Value Object (Views)

Eksempel på mit problem:

Jeg har 2 EJB'er der er relateret til hinanden (CMP beans)i et 1-M forhold. Når jeg i min webserver kalder den ene, ønsker jeg et ValueObject (fremfor RMI kald for hvert enkelt felt i EJB'en). Er der en måde hvorpå man på runtime kan beslutte hvilke felter man ønsker med i dette Value Object? Det kunne være nyttigt ved fx oprettelse af et varekatalog som består af MANGE vare med MANGE felter, men hvor der kun vises fx et varenavn for hver enkel vare.
Envidere mangler jeg en måde hvorpå jeg dynamisk kan loade de relationer som en vare kunne have. Der er ingen grund til at loade dem før de bliver benyttet. Ellers vil man jo sende samtlige EJB objekter som relatere til en given vare.
Ved ikke om alt dette giver mening :-)

Har søgt efter et designpattern der omhandler dette, men har ikke kunne finde et

Avatar billede kama Nybegynder
08. marts 2002 - 13:54 #1
Mit forslag er at lave dine Entity EJB'ere lokale - altså med Local- og LocalHome-interfaces. Så kan du benytte dig af et Facade-pattern med en Remote Session EJB, der kalder lokalt til de 2 Entity EJB'ere. På facaden kan du håndtere dannelsen af Value-objects efter behag. Klienten kalder dermed kun ind på Session EJB'en.

Vedr. "dynamisk kan loade relationer": Hvis du benytter cmr til din 1-M, så har du jo også defineret en Collection eller lignende. Så laver du bare en cmr-metode der eks. hedder getFelter() og returnerer en Collection. Så skal du faktisk ikke gøre mere - det er dejlig nemt.

Se 'Value Object' i Core J2EE Patterns.
http://www.amazon.com/exec/obidos/ASIN/0130648841/qid=1015591969/sr=8-1/ref=sr_8_71_1/104-8104125-1351956
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester