Třídní diagram

anonym

Třídní diagram
« kdy: 14. 06. 2018, 19:29:10 »
Dobrý den,

chtěl bych se zeptat na následující:



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


uuuuuuuu

Re:Třídní diagram
« Odpověď #1 kdy: 14. 06. 2018, 20:15:28 »
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.

uuuuuuuu

Re:Třídní diagram
« Odpověď #2 kdy: 14. 06. 2018, 20:18:06 »
Asociace je napr. Trida zamestnanecky_pomer, ktera propojuje nezavisle tridy clovek a firma.

mon

Re:Třídní diagram
« Odpověď #3 kdy: 14. 06. 2018, 20:55:09 »
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

Natix

Re:Třídní diagram
« Odpověď #4 kdy: 14. 06. 2018, 20:57:03 »
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

Kód: [Vybrat]
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.