June 24, 2020

TypeScript. #14

OOP(Obyektga yo'naltirilgan dasturlash)

Bugundan boshlab OOP asoslarini o'rganishni boshlaymiz. TypeScriptda ishlatiladigan elementar tushunchalarni ham shu darslar davomida o'rganib boramiz.

OOPga wikipediada quyidagicha ta'rif berilgan:

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data, in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods).

Ya'ni, Obyektga yo'naltirilgan dasturlash (OYD) bu "obyektlar" konseptiga asoslangan dasturlash paradigmasi bo'lib, u maydonlar shaklidagi ma'lumotlardan(odatda attributlar va xossalar deyiladi) va proseduralar shaklidagi kodlardan (odatda metodlar deyiladi) iborat.

OOP bu haqiqiy dunyoning taqlidi emas, balki haqiqiy dunyodan yangi bir dunyoni hosil qiladi.

Interfeyslar

Interfeys so'zi ikki tizim o'rtasidagi muloqot vositasini anglatadi. Masalan, inson va kompyuter o'rtasidagi muloqotni klaviatura, sichqoncha, monitor kabi interfeyslar orqali amalga oshiramiz. Dasturlashdagi interfeysga esa quyidagicha ta'rif berishimiz mumkin: Interfeys - dasturdagi oby'ekt ega bo'lishi mumkin bo'lgan xossalarni va o'sha ob'yekt bajarishi mumkin bo'lgan funksiyalarni ta'riflab beradi. Interfeys klass va tashqi dunyo o'rtasidagi bog'lovchidir.

Endi misolda ko'ramiz:

To'g'ri burchakli uchburchakning yuzini hisoblashimiz zarur. Geometriya kursidan bilamizki, toʻgʻri burchakli uchburchakning yuzi asos va balandlik koʻpaytmasining yarimga teng.

Biz Uchburchak degan interfeys hosil qilib olamiz. Bu yerda ikkita katetni k1 va k2 deb belgilab olamiz:

interface Uchburchak {   
  k1:number   
  k2:number
  }

Undan soʻng uchburchakning yuzini hisoblaydigan funksiyani yozamiz. Bu funksiyaning parametri sifatida Uchburchak turiga tegishli a oʻzgaruvchisini eʻlon qilamiz.

Endi Uchburchak turiga tegishli uchburchak1 obyektini hosil qilamiz.

Endi uchburchak yuzini hisoblash funksiyasini ishlatib koʻramiz.

Natijani ekranga chiqaramiz:

Mana intrefeys qanday ishlashi bilan ham tanishib oldik. Endi interfeys nima maqsadlarda ishlatilishiga toʻxtalib oʻtadigan boʻlsak. Odatda dastur davomida bir funkisyadan juda koʻp marta foydalanishimizga toʻgʻri keladi. Agar funksiyaga yana bir parametr qoʻshganimizda ushbu funksiyani dasturning qayerida ishlatilgan boʻlsa hammasini toʻgʻrilab chiqish zarur boʻladi. Bu esa juda qiyin. Shuning uchun biz interfeyslardan foydalanamiz. Demak, obyektda qanday metod va xossalardan foydalanmoqchi boʻlsak, barchasini avvaldan interfeysda eʻlon qilib olishimiz kerak.

Yana bir holatga eʻtibor qaratish kerak. Agar biz interfeysni TypeScriptda eʻlon qilib keyin JavaScriptga komplyatsiya qiladigan boʻlsa, JSda interfeys yoʻqilib ketadi. Chunki, interfeys faqat TypeScriptdagi xatolarni tekshirish uchun zarur.

Tuzilishi jihatdan interfeys klassga oʻxshab ketadi. Lekin farqli jihatlari bor. Buni biz keyingi darsda klasslar mavzusida aytib oʻtamiz.

Darsning boshqa qismlari @samtuitsoft kanalida berib boriladi.