Ob'ektga yo'naltirilgan dasturlashdan farqlar. Dasturchi nuqtai nazaridan, komponentlarga yo'naltirilgan dasturlash qoidalariga rioya qilgan holda, hamma narsa ob'ekt emas. Qat'iy aytganda, bu haqiqatan ham shunday. Ob'ekt tushunchasi mantiqdan import qilinadi, bu yerda ob'ektlarga qo'shimcha ravishda sub'ektlar ham mavjud. Ularning orasidagi farq, ma'lumki, sub'ektlar ob'ektlarga ta'sir qilishidir. Ob'ektga yo'naltirilgan dasturlashda (OYD) mavzuni shakllantirishni qaerdan topish mumkin? Ya'ni, OYDda sub'ektlarning toifalari dastlab noto'g'ri aniqlangan, bu OSTga bunday abstraksiyalarni "faol ob'ekt" sifatida kiritishni muqarrar qiladi (aslida bu ob'ekt, garchi mavzu nafaqat ob'ektdan kelib chiqmagan, balki umuman mustaqil bo'lsa ham). mantiqdagi mavhumlik).
Ushbu paradigmaning muhim ajralib turuvchi xususiyati sifatida OYD tarafdorlari meros olish imkoniyatiga ishora qiladilar - merosga asoslangan sub'ektlardan biri to'liq yoki qisman boshqa shaxsning xatti-harakatini va holatini takrorlaganida, ikki shaxsning o'zaro munosabati. Darhaqiqat, bunday xatti-harakatlar ko'pincha haqiqiy dunyoda uchraydi va asossiz emas. Ammo, shunga qaramay, sub'ektlarning butun ierarxiyasini bitta rivojlanish daraxtiga qisqartirish bo'yicha mavjud urinishlar aslida juda oqlangan emas va asosiy ob'ektni o'zgartirish avtomatik ravishda barcha bog'liq bo'lgan sub'ektlarni o'zgartiradi. Va bu har doim ham qulay emas. Aniqroq, hatto, ko'pincha bu dasturiy ta'minot loyihasi uchun halokat bo'lishi mumkin. Bundan tashqari, juda ko'p sonli ob'ektlar mavjud bo'lib, ular uchun baza turiga bog'lash mutlaqo asossizdir. Masalan, Java kabi OYD dasturlash tili dasturchini barcha ob'yektlarni o'rnatilganlaridan qurishga majbur qiladi. Bunday qat'iy cheklov tufayli ushbu qoidani buzish qobiliyatini joriy etish kerak edi. Albatta, bu mumkin bo'lgan qoidabuzarliklarga olib keladi. Umuman olganda, OYD dasturning dekompozitsiyasini sezilarli darajada osonlashtiradi, lekin shu bilan birga dasturni bajarish mantig'ini tushunishning kalitida o'z qiyinchiliklarini keltirib chiqaradi. Komponentga yo'naltirilgan dasturlash dasturchini biron bir ob'ektdan foydalanishga majbur qilmaydi. Dasturchi o'z kodini buzolmasligi uchun til allaqachon etarlicha qattiq. Korxona tushunchasi asosan modul tushunchasi bilan birlashtirilgan va qoida tariqasida mantiqiy ob'ekt bitta modulda joylashgan bo'lib, bu dastur mantig'ini to'liq boshqarish imkonini beradi. Ammo, agar aniq ehtiyoj mavjud bo'lsa, mantiqiy ob'ektni ko'plab modullar o'rtasida taqsimlash mumkin (masalan, ko'plab boshqa kichik korxonalar bitta tashkilotga birlashtirilganida). Shu bilan birga, KYD, OYDdan farqli o'laroq, mo'rt bazaviy sinf muammosini oqlangan va tabiiy ravishda hal qiladi - ko'p merosxo'rlik shunchaki kerak emas. Komponentga yo'naltirilgan dasturlashning o'ziga xos xususiyatlari
KYD, qandaydir tarzda, kengayadi va ba'zi jihatdan boshqa dasturiy idiomlarni cheklaydi. Shunday qilib, funktsional uslub qo'llab-quvvatlanadi, ammo uchinchi tomon ta'siri cheklangan. KYDda sinf degani yo'q, lekin shu bilan birga, ma'lumotlar tuzilmalari va modul ichida ularga biriktirilgan protseduralar OYDdagi sinf tushunchasini to'liq tasvirlaydi. Etarlicha sodda manba tokenlari sizga yaxshi muvofiqlashtirilgan, kuchli yozilgan va kengaytirilishi mumkin bo'lgan (manba kodi orqali ham, mashinada kompilyatsiya qilingan) kodni yaratishga imkon beradi. KYD birinchi navbatda barqaror, dinamik muhitga qaratilgan. Shunday qilib, masalan, Linux OS-da vaziyat yuzaga keladi, ba'zi hollarda maxsus mexanizmlardan foydalangan holda to'g'ridan-to'g'ri ishlaydigan yadroga tuzatishlar kiritish mumkin, Paskal komponentasida - bitta ishchi modulni dinamik ravishda boshqasiga almashtirish qiyin emas (o'zaro ishlash mavjud bo'lgan holatlardan tashqari). Paskal komponenti boshqarishi mumkin bo'lgan manbalar, aniq sabablarga ko'ra, qila olmaydi). Shuni ham ta'kidlash kerakki, kompilyatsiya qilingan tillarda axlatni avtomatik yig'ish bu oddiy narsa emas. Dinamik tizimlarda ortiqcha narsalarni yig'uvchilarga ehtiyoj yanada yuqori. Odatda, dasturchining o'zi xotira bilan past darajadagi operatsiyalarni boshqarishi kerak. Va bu erda mavhumlik printsipi buziladi. KYD yordamida siz axlat yig'ish avtomatik va mutlaqo aniq amalga oshiriladigan tizimni qurishingiz mumkin. Bunga bir necha usul bilan erishish mumkin va ulardan eng qulayi bu ma'lumotlar tuzilmasiga bog'lanishlarni hisoblashdir. Agar biron-bir strukturani qayta ishlaydigan modul xotiradan yuklansa - aniqki, hech kim bu ma'lumotlarni qayta ishlay olmaydi).
Do'stlaringiz bilan baham: |