Asosiy farq – jamlash va Java-dagi kompozitsiya
Aggregatsiya ikki obyekt oʻrtasidagi bogʻlanish boʻlib, “bor-a” munosabatini tavsiflaydi. Tarkibi birlashtirishning o'ziga xos turi bo'lib, u egalik huquqini anglatadi. Java-dagi yig'ish va kompozitsiya o'rtasidagi asosiy farq shundaki, agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lsa, u yig'ishdir va agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lmasa, u kompozitsiyadir..
Obyektga yoʻn altirilgan dasturlash (OOP) dasturiy taʼminotni ishlab chiqishdagi asosiy paradigmadir. U ob'ektlar yordamida dasturiy ta'minotni modellashtirish uchun ishlatiladi. Ob'ektlar sinflar yordamida yaratiladi. Sinf xususiyatlar va usullardan iborat. Dasturiy ta'minotda bir nechta ob'ektlar mavjud. Har bir ob'ekt xabarni uzatish orqali bir-biri bilan hamkorlik qiladi. Ikki ob'ekt o'rtasidagi munosabat assotsiatsiya deb nomlanadi. Birlashma ham, kompozitsiya ham assotsiatsiyaning ikki turidir. "Has-a" munosabati bir ob'ekt boshqa ob'ektdan foydalanishi mumkinligini tavsiflaydi. Birlashtirish va kompozitsiyani OOP qo'llab-quvvatlovchi tillarda amalga oshirish mumkin. Agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lishi mumkin bo'lsa, u holda bu ikki ob'ekt o'rtasidagi assotsiatsiya yig'ilish hisoblanadi. Agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lmasa, bu ikki ob'ekt o'rtasidagi assotsiatsiya kompozitsiyadir.
Java'da Aggregatsiya nima?
Aggregatsiya birlashma turidir. Agar sinfda ob'ekt havolasi bo'lsa, u yig'ish deb nomlanadi. Yigʻish bor-a munosabatlarini ifodalaydi. Student ob'ekti student_id, name, address kabi xususiyatlarga ega bo'lishi mumkin. Bu ob'ektda shahar, shtat, mamlakat kabi o'ziga xos ma'lumotlarga ega bo'lgan manzil deb ataladigan boshqa ob'ekt ham bo'lishi mumkin. Bunday vaziyatda Talaba tashkilotning ma'lumot manziliga ega bo'ladi. Bu “bor-a” munosabati.
01-rasm: Belgilar sinfi
02-rasm: Aggregatsiyani tavsiflovchi asosiy dastur
Yuqoridagi dasturga koʻra, sinf baholari uchta xususiyatdan iborat boʻlib, ular Matematika, Ingliz tili va Tabiatshunoslik fanlaridan iborat. Talaba Marks ob'ektiga ega. U matematika, ingliz tili va fanning belgilari bo'lgan o'ziga xos xususiyatlarga ega. Asosiy usulda Marks ob'ekti yaratiladi va belgilar qiymatlari tayinlanadi. S1 bo'lgan talaba ob'ekti m1 bo'lgan marks ob'ektidan foydalanishi mumkin. Shuning uchun, Student va Marks o'rtasida "bor-a" munosabatlari mavjud. Marks ob'ekti Student ob'ektisiz mavjud bo'lishi mumkin. Demak, bu yig‘ma.
Javada kompozitsiya nima?
Kompozitsiya assotsiatsiyaning bir turi. Bu mulkchilikni nazarda tutuvchi birlashmaning o'ziga xos shaklidir. Aytaylik, A va B sinflari deb ataladigan ikkita sinf mavjud. Agar A sinf ob'ekti yo'q qilingan bo'lsa, B sinfining ob'ekti mavjud bo'lmasa, u kompozitsiyadir. Kitob ko'p sahifalardan iborat. Kitob vayron bo'lsa, sahifalari ham buziladi. Sahifa ob'ektlari kitob ob'ektisiz mavjud bo'lolmaydi. Quyidagi dasturga qarang.
03-rasm: Sinf sinfi
04-rasm: Maktab sinfi
05-rasm: Tarkibni tavsiflovchi asosiy dastur
Yuqoridagi dasturga muvofiq, Classroom ikkita xususiyatga ega: nom va Talabalar soni. Maktab sinf ob'ektlari to'plamidir. Asosiy usulda ikkita Classroom ob'ekti yaratiladi. Ular "sinflar" ga qo'shiladi. Ushbu "sinflar" maktab ob'ektiga o'tkaziladi. Nihoyat, sinf nomi va talabalar soni to'plamni takrorlash orqali chop etiladi. Agar Maktab ob'ekti yo'q qilinsa, Classroom ob'ektlari ham yo'q qilinadi. Bu kompozitsiyaga misol. Shuningdek, u “bor-a” munosabatini oʻz ichiga oladi va egalikni ham nazarda tutadi.
Javada yigʻish va kompozitsiya oʻrtasida qanday bogʻliqlik bor?
Aggregatsiya va Kompozitsiya ikki xil assotsiatsiya, kompozitsiya esa jamlashning maxsus turidir. Tarkibi yig‘ishning quyi to‘plamidir
Java-da yig'ish va kompozitsiya o'rtasidagi farq nima?
Aggregation va Java-dagi kompozitsiya |
|
Aggregatsiya ikki obyekt oʻrtasidagi bogʻlanish boʻlib, “boʻlgan” munosabatni tavsiflaydi. | Tarkib - egalik huquqini nazarda tutuvchi birlashmaning aniqroq turi. |
Foydalanish | |
Aggregatsiya bir ob'ekt boshqa ob'ektdan foydalanganda ishlatiladi. | Kompozitsiya bir obyekt boshqa obyektga egalik qilganda ishlatiladi. |
Ob'yektlarga ta'sir | |
Birgalikda, egalik ob'ektini yo'q qilish o'z ichiga olgan ob'ektga ta'sir qilmaydi. | Kompoziyada egalik ob'ektini yo'q qilish o'z ichiga olgan ob'ektga ta'sir qiladi. |
Xulosa – jamlash va Java-dagi kompozitsiya
Aggregatsiya va Kompozitsiya OOPda ikkita tushunchadir. "Has-a" munosabati bir ob'ekt boshqa ob'ektdan foydalanishi mumkinligini tavsiflaydi. Aggregatsiya - bu "bor-a" munosabatini tavsiflovchi ikkita ob'ekt o'rtasidagi assotsiatsiya. Kompozitsiya - bu mulkni nazarda tutuvchi birlashmaning o'ziga xos turi. Java-dagi yig'ish va kompozitsiya o'rtasidagi farq shundaki, agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lsa, u yig'ishdir va agar mavjud ob'ekt egalik ob'ektisiz mavjud bo'lmasa, u kompozitsiyadir.