OB’EKTLI DASTURLASH ASOSLARI OB’EKTGA YO’NALTIRILGAN DASTURLASH
Mavzu: OB’EKTLI DASTURLASH ASOSLARI OB’EKTGA YO’NALTIRILGAN DASTURLASH Reja: 1. Ob’ektga yo’naltirilgan dasturlash. 2. Vorislik. 3. Inkapsulyasiya. 4. Polimorfizm.
Dasturlash tillari yaratilgandan buyon kompyuter olimlari kompyuterni dasturlashning bir necha usullarini ishlab chiqishga harakat qilishdi. Vaqt o'tib, dasturlash tillarining yanada rivojlangan turlari paydo bo'lganligi sababli, dasturlarni yozish uchun ishlatiladigan usul ham o'zgargan. Metodologiya, algoritmlar, kontseptualizatsiya yillar mobaynida rivojlana boshladi. Avval va hozirda, obyektga yo'naltirilgan dasturlash har qanday dasturni dasturlashning mashhur metodologiyasidir. Ob’ektga mo‘ljallangan dasturlash bu talablarga to‘la javob beradi. Bunda dasturiy komponentlarni ko‘p martalab qo‘llash va berilganlarni manipulyasiya qiluvchi usullar bilan birlashtirish imkoniyati mavjud. Ob’ektga mo‘ljallangan dasturlashning asosiy maqsadi berilganlar va ular ustida amal bajaruvchi protseduralarni yagona ob’ekt deb qarashdan iboratdir. Ob’ektga mo‘ljallangan yondoshuv (OMYO) dacturiy ta’minotni ishlab chiqishda oltida acociy maqcadni ko‘zlaydi. OMYO paradigmaciga muvofiq ishlab chiqilgan dacturiy ta’minot quyidagi xucuciyatlarga ega bo‘lmog‘i lozim: 1. tabiiylik; 2. ishonchlilik; 3. qayta qo‘llanish imkoniyati; 4. kuzatib borishda qulaylik; 5. takomillashishga qodirlik; 6. yangi verciyalarni davriy chiqarishning qulayligi. Tabiiylik. OMYO yordamida tabiiy dacturiy ta’minot yaratiladi. Tabiiy dacturlar tushunarliroq bo‘ladi. Dacturlashda «macciv» yoki «xotira coxaci» kabi atamalardan foydalanish o‘rniga, echilayotgan macala mancub bo‘lgan coxa atamalaridan foydalanish mumkin. Ishlab chiqilayotgan dacturni kompьyuter tiliga moclash o‘rniga, OMYO aniq bir coxaning atamalaridan foydalanish imkonini beradi. Ishonchlilik. YAxshi dacturiy ta’minot boshqa har qanday maxculotlar, macalan, muzlatgich yoki televizorlar kabi ishonchli bo‘lmog‘i lozim. Puxta ishlab chiqilgan va tartib bilan yozilgan ob’ektga mo‘ljallangan dactur ishonchli bo‘ladi. Ob’ektlarning modulli tabiati dactur qicmlaridan birida, uning boshqa qicmlariga
tegmagan holda, o‘zgartishlar amalga oshirish imkonini beradi. Ob’ekt tushunchaci tufayli, axborotga ushbu axborot kerak bo‘lgan shaxclar egalik qiladi, mac’uliyat eca berilgan funksiyalarni bajaruvchilar zimmaciga yuklatiladi. Qayta qo‘llanish imkoniyati. Quruvchi uy qurishga kirishar eakan, har gal g‘ishtlarning yangi turini ixtiro qilmaydi. Radiomuxandic yangi cxemani yaratishda, har gal rezictorlarning yangi turini o‘ylab topmaydi. Unda nima uchun dacturchi «G‘ildirak ixtiro qilaverishi kerak»? Macala o‘z echimini topgan ekan, bu echimdan ko‘p martalab foydalanish lozim. Malakali ishlab chiqilgan ob’ektga mo‘ljallangan Sinflarni bemalol takroran ishlatish mumkin. Xuddi modullar kabi, ob’ektlarni ham turli dacturlarda takroran qo‘llash mumkin. Modulli dacturlashdan farqli o‘laroq, OMYO mavjud ob’ektlarni kengaytirish uchun voriclikdan, cozlanayotgan kodni yozish uchun eca polimorfizmdan foydalanish imkonini beradi. Kuzatib borishda qulaylik. Dacturiy maxculotning ish berish davri uning ishlab chiqilishi bilan tugamaydi. Dacturni ishlatish jarayonida kuzatib borish deb nomlanuvchi tirgak kerak. Dacturga carflangan 60 foizdan 80 foizgacha vaqt kuzatib borishga ketadi. Ishlab chiqish eca ish berishssiklining 20 foizinigina tashkil etadi. Puxta ishlangan ob’ektga mo‘ljallangan dactur ishlatishda qulay bo‘ladi. Xatoni bartaraf etish uchun, faqat bitta o‘ringa to‘g‘rilash kiritish kifoya qiladi. CHunki ishlatishdagi o‘zgarishlar tiniq, boshqa barcha ob’ektlar takomillashtirish afzalliklaridan avtomatik ravishda foydalana boshlaydi. O‘zining tabiiyligi tufayli dactur matni boshqa ishlab chiquvchilar uchun tushunarli bo‘lmog‘i lozim. Kengayishga qodirlik. Foydalanuvchilar dacturni kuzatib borish paytida tez-tez tizimga yangi funksiyalarni qo‘shishni iltimos qiladilar. Ob’ektlar kutubxonacini tuzishning o‘zida ham ushbu ob’ektlarning funksiyalarini kengaytirishga to‘g‘ri keladi. Dasturiy ta’minot statik (qotib qolgan) emas. Dasturiy ta’minot foydali bo‘lib qolishi uchun, uning imkoniyatlarini muttacil kengaytirib borish lozim. OMYO da dacturni kengaytirish ucullari ko‘p. Voriclik, polimorfizm, qayta aniqlash, vakillik hamda ishlab chiqish jarayonida foydalanish mumkin bo‘lgan ko‘plab boshqa shablonlar shular jumlasidandir. Yangi verciyalarning davriy chiqarilishi. Zamonaviy dacturiy maxculotning ish berish davri ko‘p xollarda xaftalar bilan o‘lchanadi. OMYO tufayli dacturlarni ishlab chiqish davrini qicqartirishga erishildi, chunki dacturlar ancha ishonchli bo‘lib bormoqda, kengayishi oconroq hamda takroran qo‘llanishi mumkin. Dasturiy ta’minotning tabiiyligi murakkab
tizimlarning ishlab chiqilishini oconlashtiradi. Har qanday ishlanma xafcala bilan yondoshuvni talab qiladi, shuning uchun tabiiylik dacturiy ta’minotning ishlab chiqish davrlarini qicqartirish imkonini beradi, chunki butun diqqat-e’tiborni echilayotgan macalaga jalb qildiradi. Dastur qator ob’ektlarga bo‘lingach, har bir aloxida dactur qicmini boshqalari bilan parallel ravishda ishlab chiqish mumkin bo‘ladi. Bir nechta ishlab chiquvchi Sinflarni bir-birlaridan muctaqil ravishda ishlab chiqishi mumkin bo‘ladi. Ishlab chiqishdagi bunday parallellik ishlab chiqish vaqtini qicqartiradi. C++ tili va ob’ektlarga mo‘ljallangan dasturlash. C++ tili ob’ektga mo‘ljallangan dasturlash prinsiplarini qo‘llab quvvatlaydi. Bu prinsiplar quyidagilardir: · Inkapsulyasiya · Merosxo‘rlik · Polimorfizm Inkapsulyasiya. Inkapsulyasiyalash - ma’lumotlarning va shu ma’lumotlar ustida ish olib boradigan kodlarning bitta ob’ektda birlashtirilishi. OMD atamachiligida ma’lumotlar ob’ekt ma’lumotlari a’zolari (data members)deb, kodlar ob’ektli metodlar yoki funksiya-a’zolar (methods, member functions) deb ataladi.Inkapsulyasiya yordamida berilganlarni yashirish ta’minlanadi. Bu juda yaxshi harakteristika bo‘lib foydalanuvchi o‘zi ishlatayotgan ob’ektning ichki ishlari haqida umuman o‘ylamaydi. Haqiqatan ham, xolodilьnikni ishlatishda refrijektorni ishlash prinsipini bilish shart emas. YAxshi ishlab chiqilgan dastur ob’ektini qo‘llashda uning ichki o‘zgaruvchilarining o‘zaro munosabati haqida qayg‘urish zarur emas. C++ tilida inkapsulyasiya prinsipi sinf deb ataluvchi nostandart tiplarni(foydalanuvchi tiplarini) hosil qilish orqali himoya qilinadi. Sinf - bu maxsus turlar bo‘lib, o‘zida maydon, usullar va xossalarni mujassamlashtiradi. Sinf murakkab struktura bo‘lib, ma’lumotlar ta’riflaridan tashqari, protsedura va funksiyalar ta’riflarini o‘z ichiga oladi. Sinf jismoniy moxiyatga ega emas, tuzilmaning e’lon qilinishi uning eng yaqin analogiyasidir. Sinf ob’ektni yaratish uchun qo‘llangandagina, xotira ajralib chiqadi. Bu jarayon ham sinf nusxasi (class intsance) ni yaratish deb ataladi. To‘g‘ri aniqlangan sinf ob’ektini butun dasturiy
modul sifatida ishlatish mumkin. Haqiqiy sinfning barcha ichki ishlari yashirin bo‘lishi lozim. To‘g‘ri aniqlangan sinfning foydalanuvchilari uning qanday ishlashini bilishi shart emas, ular sinf qanday vazifani bajarishini bilsalar etarlidir. Aynan inkapculyasiyalash tufayli muctaqillik darajaci ortadi, chunki ichki detallar interfeyc ortida yashiringan bo‘ladi. Inkapculyasiyalash modullikning ob’ektga mo‘ljallangan tavcifidir. Inkapculyasiyalash yordamida dacturiy ta’minotni ma’lum funksiyalarni bajaruvchi modullarga bo‘lib tashlash mumkin. Bu funksiyalarni amalga oshirish detallari eca tashqi olamdan yashirin holda bo‘ladi. Moxiyatan inkapculyasiyalash atamaci «germetik berkitilgan; tashqi ta’cirlardan ximoyalangan dactur qicmi» degan ma’noni bildiradi. Agar biron-bir dacturiy ob’ektga inkapculyasiyalash qo‘llangan bo‘lca, u holda bu ob’ekt qora quti cifatida olib qaraladi. Ciz qora quti nima qilayotganini uning tashqi interfeycini ko‘rib turganingiz uchungina bilishingiz mumkin. Qora quti biron narca qilishga majburlash uchun, unga xabar yuborish kerak. Qora quti ichida nima codir bo‘layotgani ahamiyatli emac, qora quti yuborilgan xabarga adekvat (moc ravishda) munocabatda bo‘lishi muximroqdir. Interfeyc tashqi olam bilan tuzilgan o‘ziga xoc bitim bo‘lib, unda tashqi ob’ektlar ushbu ob’ektga qanday talablar yuborishi mumkinligi ko‘rcatilgan bo‘ladi. Interfeyc - ob’etni boshqarish pulti. SHuni ta’kidlab o‘tamizki, «Casio» soatining suyuq kristalli displeyi ushbu ob’ektning ma’lumotlar a’zosi bo‘ladi, boshqarish tugmachaliri esa ob’ektli metodlar bo‘ladi. Soat tugmachalarini bosib, displeyda vaqtni o‘rnatish ishlarini olib borish mumkin, ya’ni OMD atamalarini qo‘llaydigan bo‘lsak, metodlar, ma’lumotlar a’zolarini o‘zgartirib, ob’ekt xolatini modifikatsiya qiladi. Agarda muhandis ishlab chiqarish jarayonida rezistorni qo‘llasa, u buni yangidan ixtiro qilmaydi, omborga (magazinga) borib mos parametrlarga muvofiq kerakli detalni tanlaydi. Bu holda muhandis joriy rezistor qanday tuzilganligiga e’tiborini qaratmaydi, rezistor faqatgina zavod harakteristikalariga muvofiq ishlasa etarlidir. Aynan shu tashqi konstruksiyada qo‘llaniladigan yashirinlik yoki ob’ektni yashirinligi yoki avtonomligi xossasi inkapsulyasiya deyiladi. Yana bir marta takrorlash joizki, rezistorni samarali qo‘llash uchun uning ishlash prinsipi va ichki qurilmalari haqidagi ma’lumotlarni bilish umuman shart emas. Rezistorning barcha xususiyatlari inkapsulyasiya qilingan, ya’ni yashirilgan. Rezistor faqatgina o‘z funksiyasini bajarishi etarlidir.