JavaRush /Kurslar /All lectures for AZ purposes /Assosiasiya: kompozisiya və aqreqasiya

Assosiasiya: kompozisiya və aqreqasiya

All lectures for AZ purposes
Səviyyə , Dərs
Mövcuddur

Kompozisiya və aqreqasiya

Siniflər və obyektlər bir-birləri ilə əlaqəli ola bilərlər. İrəliləmə "olmaq" ("IS A") əlaqəsini təsvir edir. Şir bir Heyvandır. Bu cür əlaqəni Animal ana sinif, Lion isə törəməsi olaraq irəliləmə ilə ifadə etmək asandır.

Ancaq dünyadakı bütün əlaqələr bu cür təsvir olunmur. Məsələn, klaviatura mütləq bir şəkildə kompüter ilə əlaqəlidir, amma o, kompüter deyil. Əllər bir şəkildə insanla əlaqəlidir, amma onlar insan deyil.

Bu hallarda əsasda başqa bir əlaqə növü dayanır: "olmaq" deyil, "bir hissəsidir" ("HAS A"). Əl insan deyil, amma insanın bir hissəsidir. Klaviatura kompüter deyil, amma kompüterin bir hissəsidir.

HAS A əlaqələrini kodda kompozisiyaaqreqasiya mexanizmləri ilə təsvir etmək olar. Aralarındakı fərq bu əlaqələrin "sıxlığı" ilə əlaqədardır.

Sadə bir nümunə verək:

Bizim Car — avtomobil var.

Hər avtomobilin mühərriki var.

Bundan əlavə, hər avtomobilin içərisində sərnişinlər var.

Engine enginePassenger [] passengers arasında əsas fərq nədədir? Əgər bir avtomobilin içində A adlı sərnişin oturubsa, bu, digər BC sərnişinlərinin də orada ola bilməyəcəyi mənasına gəlmir.

Bir avtomobil bir neçə sərnişinə uyğun gələ bilər. Bundan əlavə, bütün sərnişinləri avtomobildən çıxarsaq, o, rahat işləməyə davam edər.

Car sinfi ilə sərnişinlərin Passenger [] passengers massivləri arasındakı əlaqə daha az sıxdır. Bu, aqreqasiya adlanır.

Bu mövzu ilə bağlı yaxşı bir məqalə var: Siniflər arasındakı əlaqələr (obyektlər).

Orada aqreqasiya üçün başqa bir yaxşı nümunə verilib. Tutaq ki, bir Student sinfimiz var, tələbəni təmsil edir və StudentsGroup (tələbə qrupu) sinfimiz var. Tələbə həm fizika həvəskarları klubuna, həm də "Star Wars" tələbə fan-klubuna və ya KVN komandasına daxil ola bilər.

Kompozisiya — daha sıx bir əlaqə növüdür. Kompozisiyadan istifadə edilərkən obyekt yalnız bir obyektin hissəsi olmaqla qalmır, həm də həmin tip başqa obyektə aid ola bilməz.

Ən sadə nümunə — avtomobil mühərriki. Mühərrik avtomobilin bir hissəsidir, amma digər avtomobilin hissəsi ola bilməz.

Gördüyünüz kimi, onların əlaqəsi CarPassengers arasındakı əlaqədən daha sıxdır. Siniflər arasındakı əlaqələr. İrəliləmə, kompozisiya və aqreqasiya  - 4

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION