Avatar billede joki Juniormester
19. november 2017 - 09:46 Der er 2 kommentarer og
1 løsning

Arkitektur projekter/metoder

Hej

Jeg har en wpf solution, med nedenstående projekter. Med hensyn til mulighed for enkeltstående test vil det så være mest korrekt at metoder i service klasserne tager simple datatyper (string, int ) som parametre eller er det ok f.eks. at objekt fra en af entiteterne som parameter ?

x : ViewModel, validering og  window klasser
y : Service klasser
z : Models (entity framework, db first) klasser
Avatar billede arne_v Ekspert
19. november 2017 - 15:19 #1
Du har 3 lag:

X
Y
Z

og du spørgsmålet er hvad ned data klasserne.

Der er flere muligheder.

1) Brug simple data typer mellem lagene.

Det vil jeg fraraade medmindre det nedre lag er et meget lav niveau lag. Det er ikke den rigtige OO maade.

2) Data klasser i Z og brug dem i både Y og X.

Det er faktisk ikke nogen daarlig loesning. Ja - X burde ikke have en afhaengighed af Z, men det er trods alt en nedad afhaengighed, hvilket ikke er saa slemt. Og det er ofte en praktisk loesning.

3) Separate data klasser i Y og Z. X kalder Y med Y's data klasser. Y kalder Z med Z's data klasser. Det kraever naturligvis en ompakning.

Dette er den super paene model. Minimal afhaengighed mellem lagene. Men det kan altsaa nemt ende med betydeligt mere kode end #2.

4) Data klasser i separat vertikalt W lag som bruges af alle lag X, Y og Z.

X W
Y W
Z W

Dette er ligesom #2 maaske ikke den smukkeste loesning men en praktisk loesning.
Avatar billede arne_v Ekspert
19. november 2017 - 15:25 #2
Maaske er der nogen guldkorn i:

http://www.vajhoej.dk/arne/articles/arch.html#layer


Layers should:
...
* only call down never call up in the layer stack (stricter version: only call the layer beneath)


http://www.vajhoej.dk/arne/articles/arch.html#layerex

se Domain Layer eksemplet som er #4 ovenfor..

http://www.vajhoej.dk/arne/articles/arch.html#mvc

har en meget anderledes tilgang til havd M er.

:-)
Avatar billede joki Juniormester
20. november 2017 - 08:22 #3
Tak Arne :-)
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

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