Avatar billede webcreator Nybegynder
06. april 2005 - 14:52 Der er 9 kommentarer og
1 løsning

Database Facade - return af resultater

Hej Eksperter.

På hvilken måde er det mest hensigtsmæssigt, at lave en facade (frontend om du vil) til en database? Jeg ønsker fx at kunne lave en metode på min klasse, ved navn GetUsers(). Denne skal returnere samtlige brugere i min database (herunder brugernavn, fornavn, efternavn etc.). Jeg er bare i tvivl om, hvorvidt det er pænt at returnere en hel liste af brugere i et 2. dimentionelt array eller en lignende komponent. Disse er jo mig bekendt objekter (og dermed referencetyper), og det er ikke specielt velset at smide rundt med referencer på kryds og tværs af klasser.

Gode råd modtages gerne :)
Avatar billede arne_v Ekspert
06. april 2005 - 15:12 #1
ArrayList (eller en type safe custum collection) med objekter af typen User
Avatar billede webcreator Nybegynder
06. april 2005 - 15:21 #2
Yep, også det jeg tænkte på. Men det er en reference-type.
I øvrigt, så skulle det helst være i overensstemmelse med Larman og UML.
Avatar billede arne_v Ekspert
06. april 2005 - 15:25 #3
Jeg kan ikke se noget problem i at ArrayList og User er reference typer.
Avatar billede arne_v Ekspert
06. april 2005 - 15:32 #4
Og jeg mener absolut ikke at det er i modstrid med Larman.

den edition jeg har
side 462
relaxed layered coupling

"For example in Java all layers depend on java.util package elements"

java.util = System.Collections

=> ArrayList er helt fin til at aflevere flere objekter i
Avatar billede webcreator Nybegynder
06. april 2005 - 15:55 #5
Ok, det vil jeg lige læse lidt op på :)
Avatar billede arne_v Ekspert
06. april 2005 - 15:58 #6
Der står ikke ret meget

Et eller andet andet sted som jeg ikke lige kan finde nu står der også at det
er bedre at sende hele objekter end små stumper som argumenter og det må
betyde at en User klasse er bedre end 3-10 String's.
Avatar billede webcreator Nybegynder
06. april 2005 - 17:02 #7
Yep, det lyder bestemt som om du har ret. Jeg har også lige forhørt mig lidt om det, og læst en smule.
Avatar billede md_craig Nybegynder
06. april 2005 - 18:37 #8
Der er ikke noget med at kaste Reference typer mellem klasser... det skal du ikke være bange for... der hvor det bliver skidt er hvis du har flere faste pointere til samme objekt...

I det her tilfælde opretter du jo en ArrayListe som indeholder alle Users, og så returnere du referencen og inden for GetUsers metodens scope smider du så referencen væk...

Så altså, så længe du fra din Stack kun har en Reference til et Objekt i din Heap, så kan du godt kaste rundt med den reference...
Avatar billede arne_v Ekspert
26. april 2005 - 00:17 #9
OK ?
Avatar billede webcreator Nybegynder
03. maj 2005 - 17:23 #10
Beklager den lange ventetid. Havde rent glemt spørgsmålet. Jeg fik løst problemet smukt. Jeg sender endda blot et enumerator-interface tilbage, som diverse collection-typer arver fra. Så selv om jeg fx ville skifte en del af min model ud med en ande, og pludselig benytte ArrayList i stedet for et alm. Array, så er det intet problem - iteratoren er den samme.

Tak for hjælpen
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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