Негізгі айырмашылық – Java тіліндегі жинақтау мен композиция
Агрегация – «бар-а» қатынасын сипаттайтын екі нысан арасындағы байланыс. Құрам - меншікті білдіретін жинақтаудың неғұрлым нақты түрі. Java тіліндегі жинақтау мен композицияның негізгі айырмашылығы мынада: егер қамтылған нысан иелік нысансыз өмір сүре алса, ол біріктіру болып табылады, ал егер қамтылған объект иеленуші нысансыз өмір сүре алмаса, ол композиция болып табылады..
Объектіге бағытталған бағдарламалау (OOP) бағдарламалық жасақтаманы әзірлеудегі негізгі парадигма болып табылады. Ол объектілерді пайдаланып бағдарламалық жасақтаманы модельдеу үшін қолданылады. Объектілер сыныптар арқылы жасалады. Класс қасиеттер мен әдістерден тұрады. Бағдарламалық құралда бірнеше нысандар бар. Әрбір нысан хабарламаны беру арқылы бір-бірімен ынтымақтасады. Екі объект арасындағы қатынас ассоциация деп аталады. Агрегация да, композиция да ассоциацияның екі түрі. «бар-a» қатынасы бір нысан басқа нысанды пайдалана алатынын сипаттайды. Агрегация мен құрамды OOP қолдайтын тілдерде іске асыруға болады. Егер қамтылған нысан иеленуші нысансыз өмір сүре алатын болса, онда бұл екі нысан арасындағы байланыс біріктіру болып табылады. Егер қамтылған нысан иеленуші нысансыз өмір сүре алмаса, онда бұл екі нысан арасындағы байланыс композиция болып табылады.
Java тіліндегі агрегация дегеніміз не?
Агрегация – ассоциация түрі. Егер сыныпта нысан сілтемесі болса, ол біріктіру ретінде белгілі. Агрегация бар – қатынасын білдіреді. Студент нысанында student_id, атау, мекенжай сияқты сипаттар болуы мүмкін. Бұл нысанда қала, штат, ел сияқты өз ақпараты бар мекенжай деп аталатын басқа нысан болуы мүмкін. Бұл жағдайда Студенттің нысанның анықтамалық мекенжайы болады. Бұл "бар-а" қатынасы.
01-сурет: Сыныпты белгілеу
02-сурет: Агрегацияны сипаттайтын негізгі бағдарлама
Жоғарыдағы бағдарламаға сәйкес сынып Бағалары үш қасиеттен тұрады, олар математика, ағылшын тілі және жаратылыстану пәндері. Студентте Белгілер нысаны бар. Оның математика, ағылшын және жаратылыстану белгілері болып табылатын өзіндік қасиеттері бар. Негізгі әдісте Marks объектісі жасалады және белгілер мәндері тағайындалады. s1 болатын студент нысаны m1 болатын marks нысанын пайдалана алады. Демек, Студент пен Марк арасында «бар-а» қатынасы бар. Белгілер нысаны Студенттік нысансыз болуы мүмкін. Сондықтан бұл жинақтау.
Java тіліндегі композиция дегеніміз не?
Композиция – ассоциация түрі. Бұл меншікті білдіретін біріктірудің ерекше түрі. А және В класы деп аталатын екі класс бар делік. Егер А класының объектісі жойылса, В класының объектісі өмір сүре алмаса, онда бұл композиция. Кітап көптеген беттерден тұрады. Кітап жойылса, беттері де жойылады. Бет нысандары кітап нысанынсыз болуы мүмкін емес. Төмендегі бағдарламаны қараңыз.
03-сурет: Сыныптағы сынып
04-сурет: мектеп сыныбы
05-сурет: Композицияны сипаттайтын негізгі бағдарлама
Жоғарыда аталған бағдарламаға сәйкес, Сыныптың екі қасиеті бар, олар аты және Студент саны. Мектеп - бұл Сынып объектілерінің жиынтығы. Негізгі әдісте екі Classroom нысаны жасалады. Олар «сыныптарға» қосылады. Бұл «сыныптар» мектеп нысанына беріледі. Соңында, сыныптың аты мен студенттердің саны жинақ арқылы қайталану арқылы басып шығарылады. Мектеп нысаны жойылса, Classroom нысандары да жойылады. Бұл композицияның мысалы. Ол сондай-ақ "бар-a" қатынасын қамтиды және меншікті білдіреді.
Java тіліндегі жинақтау мен композицияның арасында қандай байланыс бар?
Агрегация және Құрам – ассоциацияның екі түрі, ал Құрам – біріктірудің мамандандырылған түрі. Композиция - Агрегацияның ішкі жиыны
Java тіліндегі жинақтау мен композицияның айырмашылығы неде?
Агрегация және Java тіліндегі композиция |
|
Агрегация – «бар» қатынасын сипаттайтын екі нысан арасындағы байланыс. | Композиция - меншікті білдіретін жинақтаудың ерекше түрі. |
Пайдалану | |
Бір нысан басқа нысанды пайдаланған кезде біріктіру қолданылады. | Композиция бір нысан басқа нысанға иелік еткенде пайдаланылады. |
Нысандарға әсер ету | |
Біріктіру кезінде иелік нысанды жою құрамындағы нысанға әсер етпейді. | Композицияда иелік нысанды жою құрамындағы нысанға әсер етеді. |
Қорытынды – Java тіліндегі жинақтау және композиция
Агрегация және Құрам - OOP ішіндегі екі ұғым. «бар-a» қатынасы бір нысан басқа нысанды пайдалана алатынын сипаттайды. Агрегация – «бар-а» қатынасын сипаттайтын екі нысан арасындағы байланыс. Құрам – меншікті білдіретін жинақтаудың ерекше түрі. Java тіліндегі жинақтау мен композицияның айырмашылығы мынада: егер қамтылған нысан иелік нысансыз өмір сүре алса, ол біріктіру болып табылады, ал егер қамтылған нысан иеленуші нысансыз өмір сүре алмаса, ол композиция болып табылады.