🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #15687

Re: UML Diagram klasy -agregacja

#15687
From: SasQ
Date: Thu, 22 Feb 2007 19:46
40 lines
3089 bytes
Dnia Sat, 02 Dec 2006 17:08:07 -0800, Tomecki napisał(a):

> Załóżmy że mam dwie klasy A i B. klasa A zawiera jako
> atrybut obiekt klasy B. I teraz czy powinienem taki obiekt
> wpisać na listę atrybutów klasy A, czy też powiązać je za
> pomocą agregacji. Cały czas myślałem że to drugie. Ale z
>ciekawości wygenerowałem sobie kod w C++ i zamiast mieć
>obiektu w klasy B w klasie A miałem jedynie wskaźnik do niego.

Jeśli masz problemy z rozróżnieniem co jest agregacją, a co
kompozycją [zawieraniem, składaniem się z...], to pomóc może
zastanowienie się, czy czas życia obiektów klasy B zależy jakoś
od czasu życia obiektów klasy A.
Jeśli obiekty klasy B mogą istnieć "samodzielnie", nawet przed
utworzeniem obiektów klasy A, lub po jej zniszczeniu, to używasz
agregacji [wskaźnik, referencja, oznaczana pustym rombem <>----
na diagramach UML].
Jeśli czas życia obiektów klasy B jest związany z czasem życia
obiektów klasy A, to masz do czynienia z zawieraniem [composition] i
wtedy obiekt klasy B jest "wbudowany" w obiekt klasy A [oznacza
się to zapełnionym rombem <#>---- na diagramach UML ;)].

Przykładowo obiekt klasy ZespółProgramistów agreguje w sobie
grupę obiektów klasy Programista ;)  Obiekty klasy Programista
składają się więc na obiekt klasy ZespółProgramistów, ale jest
to agregacja, bo ZespółProgramistów może się rozpaść, ale jego
składowi Programiści nadal istnieją i mogą utworzyć inny
ZespółProgramistów ;)  W dodatku jeden Programista może być
częścią kilku ZespołówProgramistów ;) co w przypadku kompozycji
[zawierania] nie jest możliwe.
Z kolei obiekt klasy Samochód jest kompozycją dwóch obiektów
klasy Koło, jednego lub więcej obiektów klasy Silnik, obiektu
klasy Kierownica itp. ;)  Są one jego integralnymi częsciami
i jeśli puścisz samochód z dymem, to spłonie jako całość, wraz
z obiektami składowymi ;) W dodatku jedno Koło nie może być
częścią składową kilku Samochodów, jak mogłoby to mieć miejsce
w przypadku agregacji ;)

-- 
SasQ
Technical Details
Message-ID: <pan.2007.02.22.19.46.27.682224@go2.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <1165108087.169324.56550@l12g2000cwl.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: SasQ <sasq1@go2.pl>
Newsgroups: pl.comp.objects
Subject: Re: UML Diagram klasy -agregacja
Date: Thu, 22 Feb 2007 20:46:28 +0100
Organization: Ganz Automyjnia (i przeróbki ;)
Lines: 40
Message-ID: <pan.2007.02.22.19.46.27.682224@go2.pl>
References: <1165108087.169324.56550@l12g2000cwl.googlegroups.com>
Reply-To: sasq1@go2.pl
NNTP-Posting-Host: ccs125.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1172173599 24979 83.30.142.125 (22 Feb 2007 19:46:39 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Thu, 22 Feb 2007 19:46:39 +0000 (UTC)
User-Agent: Pan/0.14.2 (This is not a psychotic episode. It's a cleansing moment of clarity.)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit