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?
