Avatar billede webcreator Nybegynder
11. april 2006 - 18:12 Der er 1 løsning

UML - Composite Aggregation og Dependency

Hej Eksperter.

Jeg sidder og arbejder på et klassediagram over et af mine systemer. I den forbindelse er der opstået et spørgsmål.

Lad os forestille os at vi har det klassiske eksempel med flg. klasser:

[Hand]1<#>------5[Finger]

Ovenstående viser at en hånd aggregerer 5 fingrer, og at disse tilhører netop én hånd (forhåbentligt). Læg mærke til den "fyldte" diamant - Composite Aggregation.

Men lad os forestille os at klassen Hand faktisk får tildelt en finger via en anden klasse. Så har denne klasse en midlertidig Dependency til Fingeren - men kun lokalt for en metode. Burde min forbindelse i givet fald så være en Shared Aggregation (altså en hul diamant < >).

Et Dependency er et meget "løst" og midlertidigt kendskab til en klasse, som typisk kun har fat i denne for at føre et objekt videre over til et andet metodekald. Men definitionen ved en Shared Aggregation er jo netop at flere klasser har en reference i et givent objekt. Spørgsmålet er så om denne reference skal være vedblivende, eller om det også gælder for midlertidige referencer.

Mit umiddelbare bud ville være at jeg fortsat kan angive det som en Composite da det netop kun er Dependencies. Derimod burde jeg ændre det til Shared hvis der var tale om vedvarende referencer. Er I enige?
Avatar billede webcreator Nybegynder
11. april 2006 - 19:01 #1
Super, har lige fundet svaret i bogen Applying UML and Patterns. Jeg havde overset et afsnit; "In the Design Model, composition and its existence dependency implication indicates that composite software objects create the part software objects"
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