Ko‘p parametrli obyektga yo‘naltirilgan dasturlash
Bajardi: 301-22 guruh talabasi
Akbarov S.U.
Qabul qildi: Doshanova Malika.
Toshkent – 2023 Kompozitsiya munosabati - bu butun ob'ekt va uning birlashgan qismlaridan biri o'rtasidagi munosabat. Oddiy qilib aytganda, bu butun qismli munosabatlar deyish mumkin; u odatda has-a-relationship deb ham ataladi .
Misol tariqasida kvartiradan foydalanamiz.
Kvartira kamida yashash xonasi, yotoqxona, oshxona va hammomdan iborat. "Tuzilgan" so'zi ta'kidlanganidek, kvartira uning har bir qismi bilan kompozitsion munosabatlarga ega.
Kvartira va uning qismlaridan biri o'rtasidagi kompozitsion munosabatlar shuni ko'rsatadiki, ushbu ikki ob'ektning (kvartira va uning qismlaridan biri) ishlash muddati bir-biriga bog'langan. Masalan, kvartiraning umri va uning yashash xonasi bir-biriga bog'langan, chunki kvartirada yashash xonasi bo'lishi kerak.
K eling, UML diagrammasida kompozitsion munosabatlar ko'rinishini ko'rib chiqaylik.
Biz yuqorida aytib o'tilganidek, ikkita ob'ektdan, kvartira va uning yashash xonasidan foydalanamiz .
Ko'rib turganingizdek, kompozitsiya munosabatlari yashash xonasi sinfini kvartira sinfiga bog'laydigan qattiq chiziq yordamida ko'rsatilgan; Biz butun sinfni (kvartirani) manba deb, qismni (yashash xonasini) maqsad deb ataymiz.
Keling, yuqoridagi UML diagrammasi kodda qanday ko'rinishini ko'rib chiqaylik:
Kodda ko'rib turganingizdek, biz paket deklaratsiyasini sinf ta'rifidan keyin ko'ramiz. Sinf ta'rifi ichida biz misol o'zgaruvchisiga egamiz, so'ngra konstruktor ta'rifiga amal qilamiz. Konstruktor ichida biz LivingRoomning yangi nusxasini yaratdik va uni misol o'zgaruvchisiga tayinladik.
Kompozisiya munosabatlari, agar dasturda uning bir qismini o'z ichiga olishi kerak bo'lgan butun ob'ekt bo'lsa, dasturda foydalanish maqsadga muvofiqdir.
Assotsiatsiya - bu ob'ektlar o'rtasidagi munosabatlar. Assotsiatsiya ob'ektlar orasidagi "has-a-relationship" munosabatidir. Assotsiatsiyada ob'ektlar o'rtasidagi munosabatlar ob'ekt namunasi boshqasini uning nomidan harakatni bajarishiga nima sabab bo'lishi mumkinligini aniqlaydi. Aytishimiz mumkinki, assotsiatsiya ob'ektlar orasidagi ko'plikni belgilaydi. Biz ob'ektlar orasidagi bir-bir, bir-ko'p, ko'p-bir va ko'p-ko'p munosabatlarni belgilashimiz mumkin. Assotsiatsiya ob'ektlar orasidagi munosabatlarni aniqlash uchun umumiyroq atamadir. Assotsiatsiya ob'ektning boshqa ob'ektdan "foydalanishini" anglatadi.
A ggregatsiya - bu uyushmaning alohida turi. Aggregatsiya - bu ob'ektlar orasidagi "has-a-relationship" munosabati. Aytishimiz mumkinki, bu ob'ektlar orasidagi to'g'ridan-to'g'ri bog'liqlik. Aggregationda yo'nalish qaysi ob'ekt boshqa ob'ektni o'z ichiga olganligini belgilaydi. Ob'ektlar o'rtasida o'zaro bog'liqliklar mavjud.
Kompozitsiya - bu yig'ishning maxsus turi. Bu agregatsiyaning kuchli turi. Aggregatsiyaning bu turida asosiy ob'ekt o'z hayot aylanishiga ega emas. Bola ob'ektining hayoti ota-onaning hayot aylanishiga bog'liq. Faqatgina asosiy ob'ekt mustaqil hayot aylanishiga ega. Agar biz asosiy ob'ektni o'chirsak, u holda bola ob'ekt(lar) ham o'chiriladi. Biz kompozitsiyani munosabatlarning "qismi" sifatida belgilashimiz mumkin.
Aggregatsiya va tarkib assotsiatsiyaning alohida turidir. Kompozitsiya yana yig'ilishning maxsus turidir. Biz yig'ish va kompozitsiyani "has-a-relationship" munosabatlari sifatida belgilashimiz mumkin. Tarkibi ko'proq cheklovchi yoki aniqroq. Kompozitsiyada tuzilgan ob'ektlar boshqa ob'ektsiz mavjud bo'lolmaydi. Aggregatsiyalarda bunday cheklov mavjud emas. Aggregatsiyada tuzilgan ob'ektning mavjudligi ixtiyoriydir. Aggregatsiyada asosiy ob'ekt ota-onasining hayot tsiklidan tashqarida mavjud bo'lishi mumkin, Kompozitsiyada esa asosiy ob'ekt ota-onasining hayot tsiklidan tashqarida mavjud bo'lolmaydi.