Anonymní profil Daniel – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Daniel – Programujte.comAnonymní profil Daniel – Programujte.com

 

Příspěvky odeslané z IP adresy 89.103.150.–

Daniel
Java › Asociace vs. agregace
29. 1. 2017   #214700

Píšu do tohoto starého vlákna, protože se mi při vyhledávání o agregaci a asociaci vyskytlo na prvním místě. Reaguji na poslední příspěvek, protože mám podezření, že obsahuje chybu. Vycházím z knížky UML 2 a unifikovaný proces vývoje aplikací (2. vydání). Nechť mě někdo opraví, pokud jsem něco špatně pochopil, ale takto jsme se to učili i na univerzitě.

V kapitole 9.4.4 se píše: "Asociací zdrojové a cílové třídy vyjadřujeme skutečnost, že objekty zdrojové třídy mohou nést objektový odkaz na objekty cílové třídy." dále se píše: "Neexistuje žádný běžně používaný objektově orientovaný programovací jazyk, který má specifickou jazykovou příkazovou strukturu pro práci s asociacemi. Proto jsou při tvorbě kódu automaticky generovaného z modelu UML všechny relace 1:1 převáděny na atributy zdrojové třídy." Toto neodpovídá tvrzení anonymního uživatele. To, co anonymní uživatel označil jako asociaci je podle knížky jen závislost typu use. Cituji kapitolu 9.5.1.1: "Na obrázku 9.24 jsou znázorněny dvě třídy, A a B, mezi nimiž je závislost <<use>>. Zmiňovaná závislost vzniká v jakémkoli z následujících případů. 1. Operace třídy A potřebuje argument třídy B. 2. Operace třídy A vrací hodnotu třídy B. 3. Operace třídy A používá objekt třídy B v libovolném místě své implementace, ovšem nikoli jako atribut." Na obrázku jsou pak v diagramu třídy A uvedeny tyto operace: foo(b:B), bar():B, doSomething(). Dále je uvedena implementace metody doSomething(), ve které je lokálně vytvořena instance třídy B a komentář o jejím používání.

Co se týče agregace a kompozice, v kapitole 18.5 se o kompozici píše: "Klíčovým rozdílem vůči agregaci je skutečnost, že v kompozici nemohou součásti existovat mimo celek. V tomto typu relace patří navíc každá součást jen jedinému celku, zatímco u agregace bylo možné součásti sdílet více celky."

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý