Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: anonym kdy 14. 06. 2018, 19:29:10

Název: Třídní diagram
Přispěvatel: anonym kdy 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
Název: Re:Třídní diagram
Přispěvatel: uuuuuuuu 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.
Název: Re:Třídní diagram
Přispěvatel: uuuuuuuu kdy 14. 06. 2018, 20:18:06
Asociace je napr. Trida zamestnanecky_pomer, ktera propojuje nezavisle tridy clovek a firma.
Název: Re:Třídní diagram
Přispěvatel: mon kdy 14. 06. 2018, 20:55:09
Citace od: uuuuuuuu 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.

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
Název: Re:Třídní diagram
Přispěvatel: Natix kdy 14. 06. 2018, 20:57:03
Citace od: anonym kdy 14. 06. 2018, 19:29:10
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.