Avatar billede jps6kb Novice
21. oktober 2006 - 13:52 Der er 3 kommentarer og
1 løsning

Design af modellag med db funktionalitet

Hej,

Vi sidder lige to og er dybt uenige. Nærmest til et punkt hvor vi snart kommer op og toppes.

Vi har en applikation som er delt op efter MVC-modellen.
Vores datalag er repræsenteret i en db som vi skal have hevet ud på en Objekt Orienteret måde.

Vi har tre klasser Rapport, Uge og Gruppe.
For at instansiere disse skal vi hente data fra databasen.
Vores problem ligger i enighed om hvor ansvaret for disse kald til database-klassen skal ligge.

Database-klassen indeholder en række metoder til at returnere model-objekter ud fra kald til databasen.

Se billedet: [http://upload.itws.dk/upload/kba/uenighed.gif]

Forslag 1: (de grønne pile)
For at generere et rapport-objekt, kalder getRapport på Database-klassen, som så kalder getUger og getGrupper i Database klassen.
Her ligger både ansvar og funktionalitet i database-klassen.

Forslag 2: (de røde pile)
En rapport oprettes og kalder derefter getUger på Database-klassen.
Hvert uge-objekt kalder så Database-klassens getGrupper.
Derved ligger ansvaret på modelklasserne og funktionaliteten.


Hvad vil designmæssigt være mest korrekt? :p
Avatar billede jps6kb Novice
21. oktober 2006 - 14:20 #1
Forslag 2: (de røde pile)
En rapport oprettes og kalder derefter getUger på Database-klassen.
Hvert uge-objekt kalder så Database-klassens getGrupper.
Derved ligger ansvaret på modelklasserne og funktionaliteten... <-- fik jeg lige afsluttet for hurtigt.


Forslag 2: (de røde pile)
En rapport oprettes og kalder derefter getUger på Database-klassen.
Hvert uge-objekt kalder så Database-klassens getGrupper.
Derved ligger ansvaret på modelklasserne og funktionaliteten ligger i database-klassen ;)
Avatar billede arne_v Ekspert
21. oktober 2006 - 16:38 #2
nu er der ikke altid nogen facit liste for den slags

først vil jeg sige at MVC er ret ligegyldigt i denne sammehæng - data access og MVC
lever langt fra hinanden

med en 2 layer vil jeg nok sige:

PL---(getReport)---DAL

men om man for en 3 layer vælger:

PL---(getReport)---BLL---(getReport)---DAL

eller

PL---(getReport)---BLL---(getWeek & getGroup)---DAL

afhænger af om man betragter bundlingen af uger og grupper som en del af sin business
logic eller en del af data selv

og det kan sagtens tænkes at man kan argumentere for begge

det eneste jeg ikke mener vil flyve er

PL---(getWeek & getGroup)---DAL
Avatar billede jps6kb Novice
24. oktober 2006 - 12:56 #3
Det er jo bare super. Tak for det. Smider du et svar?
Avatar billede arne_v Ekspert
24. oktober 2006 - 13:44 #4
ok
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