15-lekciya_paradigma_qq
.pdf15-lekciya. Obyektke baǵdarlanǵan programmalastırıw principleri
Jobası:
1.OBP-nıń tórt tiykarǵı baǵanası hám Kapsulyaciya principi.
2.Miyrasxorlıq (Inheritance): Kodtı qayta qollanıw hám ierarxiya.
3.Abstrakciya: Quramalılıqtı jasırıw hám interfeysler.
4.Polimorfizm: Bir interfeys, kóp kórinisler.
OBP-nıń tiykarları hám Kapsulyaciya
Obyektke baǵdarlanǵan programmalastırıw (OBP) tek ǵana klasslar hám obyektler menen islesiw emes, al belgili bir qaǵıydalar hám principlerge ámel etiwi bolıp tabıladı. Bul principler programmanıń strukturasın bekkem, qáwipsiz hám keleshekte keńeytiwge qolaylı etip qurıwǵa járdem beredi. OBP paradigması tórt tiykarǵı "baǵana"ǵa tiykarlanǵan: Kapsulyaciya (Encapsulation), Miyrasxorlıq
(Inheritance), Abstrakciya (Abstraction) hám Polimorfizm (Polymorphism). Bul tórt princip bir-biri menen tıǵız baylanıslı bolıp, olar zamanagóy programmalıq injeneriyanıń fundamentin quraydı. Eger baǵdarlamashı klass jaratıp, biraq usı principlerdi buzsa, ol haqıyqıy OBP kodı bolıp esaplanbaydı. Birinshi princip – Kapsulyaciya. Kapsulyaciya – bul maǵlıwmatlardı (atributlardı) hám olar menen isleytuǵın metodlardı bir pútin "kapsula" (klass) ishine jaylastırıw hám obyektke tikkeley sırtqı tásirdi sheklew mexanizmi. Onıń tiykarǵı maqseti – obyekttiń ishki halatın qorǵaw. Mısalı, dári kapsulasınıń ishinde qanday ximiyalıq zatlar bar ekenin biz kórmeymiz, biz tek onıń sırtqı qabıǵın kóremiz hám paydalanamız. Sol sıyaqlı, programmalastırıwda da obyekttiń ishki maǵlıwmatları sırtqı paydalanıwshıdan jasırın bolıwı kerek. Bul "maǵlıwmatlardı jasırıw" (Data Hiding) dep ataladı.
Kapsulyaciya "Ruxsat modifikatorları" (Access Modifiers) arqalı ámelge asırıladı. Tillerde (Java, C++, C#) tiykarınan úsh túrli modifikator bar: public (hámmege ashıq), private (tek klass ishinde ashıq) hám protected (tek miyrasxorlar ushın ashıq). OBP qaǵıydası boyınsha, klastıń atributları (ózgeriwshileri) hár qashan private bolıwı kerek. Eger atributlar public bolsa, qálegen basqa kod onıń mánisin nadurıs ózgertip jiberiwi múmkin (mısalı, adamnıń jasın teris sanǵa ózgertiw). private etip jariyalanǵan atributlarǵa sırtqı kod tikkeley tásir ete almaydı, bul programmanıń turaqlılıǵın támiyinleydi.
Jasırılǵan (private) maǵlıwmatlar menen islesiw ushın kapsulyaciya principinde arnawlı "Getter" (alıwshı) hám "Setter" (ornatıwshı) metodları qollanıladı. Bul metodlar public bolıp, olar sırtqı dúnya menen obyekttiń ishki maǵlıwmatları arasındaǵı "dárwazashı" wazıypasın atqaradı. Mısalı, setAge(int age) metodı arqalı jastı ózgertpekshi bolǵanda, metod ishinde tekseriw (validaciya) boladı: "eger jas 0 den kishi bolsa, qáte shıǵar, bolmasa ózgert". Usılayınsha, kapsulyaciya bizge maǵlıwmatlardıń durıslıǵın tolıq qadaǵalaw imkaniyatın beredi hám klastıń ishki realizaciyası ózgerse de, sırtqı kodqa tásir etpeydi.
Miyrasxorlıq hám Abstrakciya
Ekinshi princip – Miyrasxorlıq (Inheritance). Bul princip bar bolǵan klastıń (ata-ana klass / Super class) qásiyetleri hám metodların jańa jaratılıp atırǵan klassqa (bala klass / Sub class) ótkizip beriw imkaniyatın ańlatadı. Miyrasxorlıq "IS-A" (bolıp tabıladı) qatnasına tiykarlanǵan. Mısalı, "Haywan" degen ulıwma klass bolsa, "Pishiq" hám "Iyt" klassları onnan miyras aladı. Sebebi Pıshıq – bul Haywan. Miyrasxorlıq processinde bala klass ata-ana klastıń barlıq public hám protected aǵzaların avtomat túrde ózine aladı hám oǵan óziniń qosımsha qásiyetlerin qosıwı múmkin.
Miyrasxorlıqtıń eń baslı paydası – bul "Kodtı qayta qollanıw" (Code Reusability). Eger bizde uqsas logikası bar 10 klass bolsa, olardıń ulıwma kodın hárbirine qaytalap jazıwdıń ornına, bir ulıwma ata-ana klassqa jazıp qoyamız. Qalǵan 10 klass sol kodtı miyras etip aladı. Bul kodtıń kólemin qısqartadı hám "DRY" (Don't Repeat Yourself - Ózińdi qaytalama) principin ámelge asıradı. Sonday-aq, eger ata-ana klastaǵı bir jerdi ózgertsek, bul ózgeris barlıq miyrasxor klasslarǵa da avtomat túrde tásir etedi, bul proektti basqarıwdı ańsatlastıradı.
Úshinshi princip – Abstrakciya. Abstrakciya – bul obyekttiń tek áhmiyetli xarakteristikaların kórsetip, onıń ishki quramalı realizaciya detalların jasırıw procesi. Kapsulyaciya maǵlıwmatlardı qorǵaw ushın jasırsa, abstrakciya quramalılıqtı jasırıw ushın xızmet etedi. Mısalı, avtomobildi aydaw ushın bizge rol, pedallar hám kórsetkishler (interfeys) kerek. Bizge dvigateldiń ishinde benzinniń qalay janıp atırǵanı yamasa porshenlerdiń qalay háreketlenip atırǵanı (realizaciya) qızıq emes. Biz ushın avtomobil – bul abstrakt túsinik, biz tek onı basqarıw interfeysin bilemiz.
Programmalastırıwda abstrakciya "Abstrakt klasslar" hám "Interfeysler" arqalı ámelge asırıladı. Abstrakt klastan tikkeley obyekt alıw múmkin emes, ol tek basqa klasslar ushın úlgi bolıp xızmet etedi. Mısalı, "Geometriyalıq Figura" degen abstrakt klass bolıwı múmkin. Onıń maydan_esaplaw() degen abstrakt metodı bar. Biraq ulıwma figuranıń maydanın esaplaw múmkin emes, onı tek anıq figuralar (Dóńgelek, Kvadrat) óz aldına anıqlawı kerek. Abstrakciya baǵdarlamashıǵa detallarǵa alaǵada bolmay, sistemanıń ulıwma arxitekturasın proektlestiriwge imkaniyat beredi.
Polimorfizm hám principler sintezi
Tórtinshi princip – Polimorfizm. Grek tilinen alǵanda "kóp formalıq" (poly - kóp, morph - forma) degen mánisti bildiredi. OBP-da polimorfizm bir interfeys yamasa metod atamasınıń hár túrli kontekstte hár túrli islew qábiletin ańlatadı. Yaǵnıy, birdey atamadaǵı buyrıq túrli obyektlerge berilgende, hárbir obyekt onı ózinshe orınlaydı. Polimorfizmniń eki túri bar: Kompilyaciya waqtındaǵı (Static - Method Overloading) hám Orınlanıw waqtındaǵı (Dynamic - Method Overriding).
Eń kóp qollanılatuǵın túri – bul "Metodtı qayta anıqlaw" (Method Overriding). Mısalı, bizde Haywan klassı hám onıń dawıs_shıǵar() metodı bar. Iyt klassı bul metodtı "Wáw-Wáw" dep, al Pishiq klassı "Myaw" dep qayta anıqlaydı. Eger biz programmada Haywan tipindegi ózgeriwshini jaratıp, oǵan Iyt yamasa Pishiq obyektin bersek, dawıs_shıǵar() metodı shaqırılǵanda kompyuter avtomat
túrde sol obyekttiń haqıyqıy tipine sáykes keletuǵın metodtı orınlaydı. Bul bizge kodtı ózgertpesten, jańa túrdegi obyektlerdi qosıwǵa imkaniyat beredi. Polimorfizm abstrakciya hám miyrasxorlıq penen birge qollanılǵanda oǵada kúshli quralǵa aylanadı. Mısalı, biz Figura degen massiv jaratıp, onıń ishine Dóńgelek, Kvadrat, Úshmúyeshlik obyektlerin aralas salıp qoyıwımız múmkin. Keyin cikl arqalı hárbir elementtiń sız() metodın shaqırsaq, polimorfizm sebepli hárbir figura óziniń durıs súwretin sızadı.
Juwmaqlap aytqanda, Obyektke baǵdarlanǵan programmalastırıw principleri (Kapsulyaciya, Miyrasxorlıq, Abstrakciya, Polimorfizm) sapalı programmalıq támiynat jaratıwdıń gilti bolıp tabıladı. Kapsulyaciya qáwipsizlikti, Miyrasxorlıq ónimlilikti, Abstrakciya ápiwayılıqtı, al Polimorfizm iykemlilikti támiyinleydi. Bul principlerdi durıs qollanıw arqalı jaratılǵan programmalar (SOLID principlerine jaqınlasıp), keleshekte ańsat ońlanadı, komanda bolıp islesiwge qolaylı boladı hám uzaq jıllar dawamında turaqlı xızmet etedi.
BAQLAW SORAWLARÍ:
1.Kapsulyaciya degen ne hám ne ushın klastıń atributların private etip járiyalaw usınıs etiledi?
2.Getter hám Setter metodlarınıń wazıypası ne hám olar kapsulyaciyanı qalay qollap-quwatlaydı?
3.Miyrasxorlıq (Inheritance) principiniń "Kodtı qayta qollanıw" (Code Reusability) menen baylanısın túsindiriń.
4.Abstrakciya menen Kapsulyaciya arasındaǵı tiykarǵı ayırmashılıq nede?
5.Polimorfizm degen ne hám "Method Overriding" (Qayta anıqlaw) oǵan qanday mısal bola aladı?
