Mavzu: OYDning afzalliklari va kamchiliklari Reja: 1. OYDning afzalliklari 2. OYDning kamchiliklari OYDning afzalliklari
Muammolarni hal qilishda har qanday dasturlash usuli yordam berishini kutamiz. Ammo dasturlashdagi eng katta muammolardan biri bu murakkablikdir. Dastur qanchalik katta va murakkab bo'lsa, uni kichik, yaxshi aniqlangan qismlarga ajratish muhimroq bo'ladi. Murakkablikni engish uchun biz kichik detallardan mavhum bo'lishimiz kerak. Shu ma'noda sinflar juda qulay vosita.
Sinflar sizga oddiy asboblar yordamida foydali komponentlardan tuzish imkonini beradi, bu esa ularni amalga oshirish tafsilotlarini mavhumlashtirishga imkon beradi.
Ma'lumotlar va operatsiyalar birgalikda aniq bir ob'ektni tashkil qiladi va ular protsessual dasturlashda bo'lgani kabi, dastur davomida ham "bo'yalgan" emas.
Kod va ma'lumotlarni lokalizatsiya qilish dasturiy ta'minotning ko'rinishini yaxshilaydi.
Axborotni inkassulyatsiya qilish sizning eng muhim ma'lumotlaringizni ruxsatsiz kirishdan himoya qiladi.
OYD kengaytiriladigan tizimlarni yaratishga imkon beradi. Bu OYDning eng muhim afzalliklaridan biri va bu yondashuvni an'anaviy dasturlash usullaridan ajratib turadi. Kengayish degani, mavjud tizimni hech qanday o'zgartirishlar kiritmasdan, yangi komponentlar bilan ishlashga imkon beradi. Komponentlar ish vaqtida qo'shilishi mumkin.
Tur kengaytmasi va natijada paydo bo'ladigan o'zgaruvchan polimorfizm birinchi navbatda quyidagi holatlarda foydalidir.
Ma'lumotlarning heterojen tuzilmalarini qayta ishlash. Dasturlar ob'ektlar turini o'rganishga qiynalmasdan ishlashi mumkin. Istalgan vaqtda yangi ko'rinishlar qo'shilishi mumkin.
Ish paytida xatti -harakatni o'zgartiring. Ish paytida bitta ob'ektni boshqasiga almashtirish mumkin. Bu ushbu ob'ekt ishlatiladigan algoritmning o'zgarishiga olib kelishi mumkin.
Umumiy komponentlarni amalga oshirish. Algoritmlarni shu qadar umumlashtirish mumkinki, ular allaqachon bir nechta turdagi ob'ektlar bilan ishlay oladilar.
Yarim tayyor mahsulotlarni olib kelish. Muayyan dastur uchun komponentlarni sozlash shart emas. Ular kutubxonada yarim tayyor mahsulotlar sifatida saqlanishi va kerak bo'lganda turli tayyor mahsulotlarga kengaytirilishi mumkin.
Ramkaning kengayishi. Domenning ilovadan mustaqil qismlari ramka sifatida qo'llanilishi va ilovaga xos qismlarni qo'shish orqali kengaytirilishi mumkin.
Amalda, mavjud komponentlar endi yangi talablarga javob bermasligi sababli, dasturiy ta'minotni qayta ishlatishga erishib bo'lmaydi. OYD bizga mavjud mijozlarni buzmasdan, bu maqsadga erishishga yordam beradi, bu esa qayta ishlatiladigan komponentlardan maksimal darajada foydalanish imkonini beradi.
Biz boshqa loyihalarga foydali bo'lishi mumkin bo'lgan rivojlanish vaqtini qisqartiramiz.
Qayta foydalanish mumkin bo'lgan komponentlar odatda yangi ishlab chiqilganlarga qaraganda ancha kam xatolarni o'z ichiga oladi, chunki ular bir necha bor sinovdan o'tgan.
Komponentni bir vaqtning o'zida bir nechta mijoz ishlatsa, uning kodiga kiritilgan yaxshilanishlar bir vaqtning o'zida u bilan ishlaydigan ko'plab dasturlarga ijobiy ta'sir ko'rsatadi.
Agar dastur standart komponentlarga tayanilsa, uning tuzilishi va foydalanuvchi interfeysi bir xil bo'ladi, bu tushunishni osonlashtiradi va ishlatishni osonlashtiradi.
2. OYDning kamchiliklari
Ob'ektga yo'naltirilgan dasturlash to'rt narsani bilishni talab qiladi.
(1) sinflar, merosxo'rlik va dinamik bog'lanish kabi asosiy tushunchalarni tushunish. Modul tushunchasi va mavhum ma'lumotlar turlari bilan tanish bo'lgan dasturchilar uchun bu minimal kuch talab qiladi. Ma'lumotni inkassulyatsiyasini hech qachon ishlatmaganlar uchun bu dunyoqarashning o'zgarishini anglatishi mumkin va o'rganishga ko'p vaqt ketishi mumkin.
(2) Qayta foydalanish dasturchidan katta sinf kutubxonalari bilan tanishishni talab qiladi. Va bu hatto yangi dasturlash tilini o'rganishdan ham qiyinroq bo'lishi mumkin. Sinf kutubxonasi - bu aslida yuzlab turdagi va minglab operatsiyalarni o'z ichiga oladigan virtual til. Masalan, Smalltalk -da, amaliy dasturlash bilan shug'ullanishdan oldin, uning ko'plab kutubxonalarini o'rganishingiz kerak. Va bu ham vaqt talab etadi.
(3) Sinflarni loyihalash ulardan foydalanishdan ko'ra ancha qiyin. Sinfni loyihalash, xuddi tilni loyihalash kabi, katta tajribani talab qiladi. Bu takroriy jarayon, bu erda siz o'zingizning xatolaringizdan o'rganishingiz kerak.
(4) Sinflarni "sezmay" turib o'qish juda qiyin. Faqat ozgina tajribaga ega bo'lganingizda, OYD yordamida ishlashda o'zingizni ishonchli his qila olasiz.
Ko'rib turganimizdek, asosiy tushunchalarni o'zlashtirishga urinish unchalik katta emas, lekin sinf kutubxonalari va ulardan foydalanish masalasida bu juda muhim bo'lishi mumkin.
Sinflarni amalga oshirish tafsilotlari odatda noma'lum bo'lganligi sababli, dasturchi, agar u ma'lum bir sinfni tushunmoqchi bo'lsa, hujjatlarga va ishlatilgan nomlarga tayanishi kerak. O'z sinfingizni yozishdan saqlanib qolgan vaqt, mavjud sinfni tushunish uchun qisman (ayniqsa, ta'lim boshida) sarflanishi kerak.
Sinflarni hujjatlashtirish protsedura va modullarga qaraganda qiyinroq. Har qanday usulni bekor qilish mumkin bo'lganligi sababli, hujjatlarda faqat berilgan usul nima bo'lishi kerakligi emas, balki u qanday kontekstda chaqirilgani ham ko'rsatilishi kerak. Axir, bekor qilingan usullar odatda mijoz tomonidan emas, balki ramkaning o'zi tomonidan chaqiriladi. Shunday qilib, dasturchi berilgan usul chaqirilganda qanday shartlar bajarilishini bilishi kerak. Bo'sh bo'lgan mavhum usullar uchun hujjatlar hatto bekor qilingan usul qanday maqsadda ishlatilishi kerakligini ham ko'rsatishi kerak.
Murakkab sinflar ierarxiyasida maydonlar va usullar odatda turli darajalardan meros bo'lib o'tadi. Qaysi sohalar va usullar ma'lum bir sinfga tegishli ekanligini aniqlash har doim ham oson emas. Ushbu ma'lumotni olish uchun sizga sinf navigatorlari kabi maxsus vositalar kerak bo'ladi. Agar ma'lum bir sinf uzaytirilsa, xabarni asosiy sinfga o'tkazishdan oldin har bir usul odatda qisqartiriladi. Amalni bajarish bir necha sinflarga bo'linadi va uning qanday ishlashini tushunish uchun biz butun kodni diqqat bilan ko'rib chiqishimiz kerak.
3. OYDning kelajagi
Ob'ektga yo'naltirilgan dasturlash omon qoladimi yoki tez orada yo'q bo'lib ketadigan modami?
Sinflar eng zamonaviy dasturlash tillariga yo'l topdi. Bu faqat ular qolishga tayyor ekanligini ko'rsatadi. Yaqin kelajakda darslar har bir dasturchi uchun standart tushunchalar to'plamiga aylanadi, xuddi ko'pchilik yigirma yil oldin qiziq bo'lgan dinamik ma'lumotlar tuzilishi va rekursiyadan foydalanadi. Shu bilan birga, sinflar boshqalar qatori yangi qurilishdir. Biz ular qanday vaziyatlarga mos kelishini aniqlashimiz kerak va faqat shu erda biz ulardan foydalanamiz. Muayyan vazifa uchun to'g'ri vositani tanlash har bir hunarmand uchun va undan ham ko'proq har bir muhandis uchun zarurdir.
OYD ko'pchilikni eyforiya holatiga olib keladi. Bu erda va u erdagi reklamalar aql bovar qilmaydigan narsalarni va'da qiladi, hatto ba'zi tadqiqotchilar OYDni dasturiy ta'minotni ishlab chiqishning barcha muammolarini hal qila oladigan dard deb bilishga moyil ko'rinadi. Vaqt o'tishi bilan bu eyforiya asta -sekin kamayadi. Bir muncha vaqt umidsizlikdan so'ng, odamlar, ehtimol, OYD haqida gapirishni to'xtatib qo'yishadi, xuddi bugungi kunda siz hech kimdan tizimli dasturlash haqida eshitmaysiz. Ammo darslar odatiy holga aylanadi va biz nihoyat ularning nima ekanligini tushunishimiz mumkin: modulli va kengaytiriladigan dasturiy ta'minotni yaratishga yordam beradigan komponentlar.
Ishning maqsadi quyidagi amallarni bajaradigan dastur yaratishdir: 1. Dasturni ishga tushirgandan so'ng "Zarni siljiting" yozuvi paydo bo'ladi.
Guruch. 16.
2. "Zarni siljitish" tugmachasini bosganingizda 0 - 6 oralig'idagi nuqtalarni aks ettiruvchi xabar paydo bo'ladi.
Guruch. 17.
3. Dasturdan chiqish uchun sarlavha satridagi yopish tugmasini bosing.
Dasturni ishlab chiqish rejasining tavsifi
1. Yangi loyihani oching.
2. Formaga komponentalar misollarini joylashtiring: Label and Button.
3. Quyidagi tarzda davom eting:
3 -jadval.
"O'likni o'girish" tugmachasining nomini belgilash
Voqealar
OnClick
ЬаЬе11.Сариоп:= ШТо8и"(п);
4. Loyihani saqlang, ishga tushiring va sinab ko'ring. Dasturning bo'lagi
procedure TForml.ButtonlClick(Sender: TObject); var n: Integer;
begin
n := random (6) + 1 ;
Label1.Caption: = IntToStr (n); oxiri; oxiri.
5. Создать функцию, отображающую числовые значения граней. Function Kubic (Sides:Integer): Integer;
begin
If Sides >= 1 then begin
Result := random (Sides) +1 ; end else begin
Result :=0;
end;
End;