Asociace vs. agregace – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Asociace vs. agregace – Java – Fórum – Programujte.comAsociace vs. agregace – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Radek
~ Anonymní uživatel
121 příspěvků
23. 8. 2013   #1
-
0
-

Ahoj, dokázal by mi někdo vysvětlit, jaký je rozdíl mezi asociací / agregací v OOP?

Oba vztahy mi připadají, co se implementace týká shodné.

Příklad agregace:

    public class Person  
    {  
        private Costume currentClothes;  
      
        public void setClothes(Costume clothes)  
        {  
            currentClothes = clothes;  
        }  
       
    }  
Nahlásit jako SPAM
IP: 82.99.140.–
Reklama
Reklama
Matrix17
~ Anonymní uživatel
285 příspěvků
23. 8. 2013   #2
-
0
-

Google (asociace oop), druhej odkaz:

http://blog.renestein.net/UML+O+Agregaci+Kompozici+A+Asociaci+A+Jako+Bonus+Spole%C4%8Densk%C3%A1+Aktualitka.aspx

Nahlásit jako SPAM
IP: 213.226.237.–
Radek
~ Anonymní uživatel
121 příspěvků
23. 8. 2013   #3
-
0
-

#2 Matrix17
Samozřejmě, že Google jsem použil jako první a teorii přečetl, ale jaksi mi pořád uniká rozdíl v implementaci asociace vs agregace.

Nahlásit jako SPAM
IP: 82.99.140.–
Radek
~ Anonymní uživatel
121 příspěvků
23. 8. 2013   #4
-
0
-

Může být implementace asociace i agregace shodná, ale liší se pouze pojmenováním vztahu podle konrétního případu?

V případě, kdy je jeden objekt "celek" a druhý objekt "částí" celku pojmenuji vztah agregací. A když jsou si svou nadřazeností oba objekty rovny nazvu jejich vztah asociací, chápu to takto správně?

Nahlásit jako SPAM
IP: 82.99.140.–
liborb
~ Redaktor
+18
Guru
23. 8. 2013   #5
-
0
-

Asociace je obecná vazba. Agregace je tato vazba (nebo-li je to asociace) s určitým omezením. A pak je tu ještě kompozice, která je opět asociací, ale s ještě větším omezením.

A co se týká implementace, tak je to nakonec všechno na jedno brdo :). Nejvíce se potkáš s agregací, méně často s kompozicí. Často se můžeš hodiny přít o to, jestli je daná vazba kompozice nebo agregace .... prostě, je to jenom slovíčkaření :).

Nahlásit jako SPAM
IP: 188.75.135.–
NeregistrovanyHookyns
~ Anonymní uživatel
62 příspěvků
16. 6. 2016   #6
-
0
-

Jsem si vědom toho, že obnovuji relativně staré téma, ale hledal jsem něco ohledně agregací a našel jsem tohle, takže je možné, že sem přijde i někdo jiný a bude hledat jasné vysvětlení.

Dle mého je implementační rozdíl jasný.

Asociace je vztah, kdy se instance předává, používá se, ale neukládá se.  

class Foo {
	private byte booSize = 0;

	public void bar(Boo b) {
		booSize = b.size;
	}
}

Co přiložil zakladatel topicku, je agregace, přijímám instanci a ukládám si ji do sebe, poté s ní můžu dělat cokoliv.

    public class Person  
    {  
        private Costume currentClothes;  
      
        public void setClothes(Costume clothes)  
        {  
            currentClothes = clothes;  
        }  
       
    } 

Kompozice je vztah, kdy je třída přímo závislá na ostatních, př:  

class Auto {
	private Motor motor;

	public Auto(/*Motor m*/) {
		motor = new Motor();
	}
}

Instance, na kterých je závislá, si může vytvořit sama nebo přijmout v konstruktoru, ale po ukončení konstruktoru musejí být všechny kompoziční vlastnosti nastavené.

Nahlásit jako SPAM
IP: 77.95.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 59 hostů

Podobná vlákna

Asociace se soubory — založil Colpik

UML to Java - asociace — založil pedro.cze

Moderátoři diskuze

 

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