Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: anonym 14. 06. 2018, 19:29:10
-
Dobrý den,
chtěl bych se zeptat na následující:
(https://upload.wikimedia.org/wikipedia/commons/0/0b/Uml_class_relation_arrows_en.svg.png)
U agregace vím, že je představuje atribut List objektů.
Inheritance je extends,
Implementation je implements.
Jenže nevím, co by pak bylo:
-kompozice
-asociace
A z trochu jiného soudku:
Jak v Class Diagramu zobrazím to, že chci třída A má atribut jakožto instanci třídy B?
Jak zobrazím, že nějaká metoda z A vrací instanci třídy B?
Jak zobrazím, že nějaká metoda z A bere jako argument instanci třídy B?
A konečně, jak zobrazím, že nějaká metoda v A používá instanci třídy B, aniž by ji vracela nebo použila jako vstupní atribut?
Děkuji
-
Kompozice je, ze trida obsahuje jinou tridu jako membera/promennou.
Trida auto obsahuje 4 kola, takze misto listu kol muze obsahovat
Membery kolo1, kolo2, kolo3, kolo4, volant.
-
Asociace je napr. Trida zamestnanecky_pomer, ktera propojuje nezavisle tridy clovek a firma.
-
Kompozice je, ze trida obsahuje jinou tridu jako membera/promennou.
Trida auto obsahuje 4 kola, takze misto listu kol muze obsahovat
Membery kolo1, kolo2, kolo3, kolo4, volant.
to to nie je uplne spravna definicia.
kompozicia znamena, ze objekt vlavo (a) vlastni objekty vpravo (b) a tie bez (a) prestavaju existovat
napr. faktura a a riadky faktury, ked zanikne faktura zaniknu aj riadky
agregacia znamena, ze objekt (a) pouziva viacero objektov (b) ale tie mozu existovat aj samostatne
napr. zamestnanci na oddeleni, ked oddelenie zanikne zamestnaci ostanu ale presunu sa na ine oddelenie (alebo ich vyhodia)
asociacia spaja dva objekty, napr. faktura a odberatel
"iny sudok":
* asociacia
* nezobrazis, ale napises. napr. "+getSupplier():Partner"
* nezobrazis, ale napises. napr "+setSupplier(supplier:Partner)"
* zavisi, moze byt dependency, alebo realization... ale algoritmicka zavislost sa zvycajne do class diagramu nekresli
-
Jak v Class Diagramu zobrazím to, že chci třída A má atribut jakožto instanci třídy B?
Jak zobrazím, že nějaká metoda z A vrací instanci třídy B?
Jak zobrazím, že nějaká metoda z A bere jako argument instanci třídy B?
A konečně, jak zobrazím, že nějaká metoda v A používá instanci třídy B, aniž by ji vracela nebo použila jako vstupní atribut?
Děkuji
class A {
B field;
B method1() {...}
void method2(B b) {...}
void method3() {
B b = ...
b.something();
}
}
;D
Ale vážně, v class diagramu lze samozřejmě pro každou třídu napsat seznam fieldů a metod včetně typových signatur. Je ale otázka, jestli něco takového má vlastně smysl.