Merosxo’rlik
Merosxo’rlik – bu bir ob’ekt uning yordamida boshQasining xususiyatlarini o’ziga olishi mumkin bo’lgan xossadir. Shuning uchun yuQoridan Quyiga yo’nalgan ierarxik tasniflash konsepsiyasi Qo’llab-Quvvatlanadi. Masalan, aytish mumkinki, Mazali Qizil olma sinfi o’z navbatida mahsulotlar sinfiga taalluQli mevalar sinfining bir Qismi bo’lgan olma sinfining Qismlaridan biri hisoblanadi. YA’ni mahsulotlar sinfi uning sinfostisi hisoblangan mevalarga ham Qo’llab bo’ladigan muayyan sifatlarga ega (esa bo’ladigan, to’yimli va shunga o’xshashlar). Mevalar sinfining ushbu sifatlariga Qo’shimcha ravishda uni boshQa mahsulotlardan farQlab turuvchi o’ziga xos (sersuvligi, shirinligi va hokazo) xususiyatlari mavjud. Olmalar sinfini faQatgina olmalarga tegishli sifatlar (daraxtda o’sishi, tropik mevalar emasligi va hokazo) belgilab beradi. Mazali Qizil olma sinfi o’z navbatida oldingi sinflarning barcha sifatlarini meros Qilib oladi va faQatgina ularni noyob Qiladigan sifatlarni belgilab beradi.
Meros olishni amalga oshirmasdan har bir ob’ekt o’zining barcha xususiyatlarini aniQ belgilashi kerak; meros olayotganda ob’ekt o’zining sinfi chegarasida uni noyob Qiladigan sifatlarni aniQlab olishi lozim. U o’zining ota-onalar sinfidan umumiy atributlarni meros Qilib olishi mumkin. Shunga ko’ra, aynan merosxo’rlik mexanizmi bir ob’ektga o’z sinfining spesifik namunasi bo’lish imkonini beradi.
DaQiQali amaliyot
OYD tamoyillarini ayting.
Nima inkapsulyatsiyaning asosiy elementi hisoblanadi?
Savol. Sizningcha, OYD katta dasturlarni boshQarishning samarador usuli hisoblanadi, lekin u nisbatan katta bo’lmagan dasturlarni ortiQcha murakkablashtirishi mumkin, degan fikr ham mavjud. Modomiki siz, barcha S# dasturlar Qaysidir darajada ob’ektga-yo’naltirilgan bo’ladi, deb ta’kidlayapsiz, bu holda katta bo’lmagan S# dasturlarni yozishda noQulaylik kelib chiQmaydimi?
Javob. Yo’Q, keyinchalik siz guvohi bo’lasiz, S# da OYD dan foydalanilganda katta bo’lmagan hajmdagi kodlar uchun amalda dasturlarning murakkabligiga ta’sir Qilmaydi. Garchi S# Qat’iy ob’ektli modelga ega bo’lsada, siz uni Qo’llash bosQichini aniQlashda yetarlicha erkinlikka ega bo’lasiz. Katta bo’lmagan dasturlar uchun “ob’ektga yo’naltirilganlik” sal-pal seziladi, dasturlar hajmining o’sish choralariga ko’ra unga katta hajmdagi ob’ektga-yo’naltirilgan xossalarni birlashtirish mumkin.
Do'stlaringiz bilan baham: |