[ markojo @ 15.12.2007. 18:38 ] @
Zeleo bih da shvatim slozen dijagram sa vise klasa i veza medju njima.

Koliko pise pise postoje 4 vrste odnosa koji mogu biti jednosmerni i dvosmerni. Asocijacija, zavisnost, kompozicija i agregacija.

Zavisnost - objekti jedne klase su argumenti metode druge ili lokalni objekti u metodama - OK

Asocijacija - medju atributima jedne klase postoji atribut koji je pokazivac ili upucivac na objekte druge klase. Pomocu njega moze da se pristupa clanovima druge klase.

Kompozicija i agregacija podrazumevaju asocijaciju ?

Kapiram kompoziciju iz prakse - u jednoj klasi postoje objekti tipa druge (mogu i pokazivaci i upucivaci); "delovi se stvaraju i unistavaju zajedno sa sklopom".

E, agregacija ce mi biti u zadatku koji cu morati da uradim -
"delovi mogu da postoje izvan sklopa da se stavljaju i vade iz njega.Za uspostavljanje ovog odnosa mogu se koristiti samo pokazivaci u agregatu
(ili u obe klase ako je odnos dvostrani). Samo pomocu njih moze uspostavljeni odnos medju objektima da se raskida kada deo treba izvaditi iz sklopa."

Znaci ako nije upotrebljen pokazivac, vec atribut/upucivac tipa druge klase ne radi se o agregaciji vec kompoziciji ?

Jel dovoljno da u agregatu postoji neki jedinstveni parametar po kome cu da kombinujem delove po potrebi(index niza,struktura sa jedinstvenim brojem + pokazivac na deo...) ?

Od ove teorije ne mogu da razaberem sta je sta i da pravilno povezem klase, jel ima nekih jednostavnih pravila za projektovanje klasnih dijagrama, ili slikovitih primera da se vidi razlika agregat/kompozit/asocijacija ?




[ Branimir Maksimovic @ 21.12.2007. 09:35 ] @
Mislim da imas problema sa terminologijom pa te niko ne moze razumeti.

1 .asocijacija
mogucnost jedne instance objekta da pozove member funkciju druge instance.
E sad to moze na vise nacina. Preko lokalnih varijabli, preko parametara,
preko clanova klase.

2. agregacija
isto sto i asocijacija plus sto referirane instance ne mogu oformiti ciklicnu zavisnost.
Znaci nema dvosmerne zavisnosti.

3. kompozicija
isto sto i agregacija plus sto je klasa koja drzi reference odgovorna
za njihov zivotni vek.

Prosto i jednostavno.




[Ovu poruku je menjao Branimir Maksimovic dana 21.12.2007. u 11:33 GMT+1]