Programming TypeScript


Download 1.81 Mb.
bet89/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   85   86   87   88   89   90   91   92   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Dizayn naqshlari


Agar biz TypeScript-da bir yoki ikkita dizayn naqshini amalga oshirmasak, bu ob'ektga yo'naltirilgan dasturlash bo'limi bo'lmaydi, to'g'rimi?
Yakuniy darslarni simulyatsiya qilish

Zavod namunasi


Zavod namunasi - bu qandaydir aniq ob'ektni yaratish qarorini shu ob'ektni yaratuvchi aniq zavodga qoldirib, qandaydir turdagi ob'ektlarni yaratish usuli. Keling, poyabzal fabrikasini quraylik. Poyafzal turini va bir necha turdagi poyabzallarni aniqlashdan boshlaymiz :
turi Poyafzal = { maqsad : string }
sinf BaletFlat asboblar Poyafzal {
maqsad = "raqsga tushish" }
sinf Yuklash asboblar Poyafzal { maqsadi = "yog'och kesish" }
sinf Krossovka asboblar Poyafzal { maqsadi = "yurish" }
E'tibor bering, bu misolda type dan foydalaniladi, lekin biz uning o'rniga interfeysdan foydalanishimiz mumkin edi .
Keling, poyabzal fabrikasini quraylik:
ruxsat bering Poyafzal = {
yaratish ( turi : 'baletFlat' | "yuklash" | "krossovka" ) : Poyafzal { almashtirish ( turi ) {
hol 'baletFlat' : qaytish yangi BaletFlat
hol "yuklash" : qaytish yangi Yuklash hol "krossovka" : qaytish yangi Krossovka
}
}
}
Tur uchun birlashma turidan foydalanish .create ni iloji boricha xavfsizroq qilishga yordam beradi va iste'molchilar kompilyatsiya vaqtida noto'g'ri turga o'tishlarini oldini oladi.
Turni yoqish TypeScript-ga biz Poyafzalning har bir turi bilan ishlaganimizdan foydalanishni osonlashtiradi .
Ushbu misolda biz qoʻshimcha obʼyekt namunasidan foydalanamiz ( 140-betdagi “Kompaniya obʼyekt namunasi” ga qarang ) bir xil nomdagi Shoe va qiymat Poyafzalini eʼlon qilish uchun (TypeScript-da qiymatlar va turlar uchun alohida nom boʻshliqlari borligini yodda tuting). qiymat turi bo'yicha ishlash usullarini taqdim etishi haqida signal berish. Zavoddan foydalanish uchun biz shunchaki .create ga qo'ng'iroq qilishimiz mumkin :
Poyafzal . yaratish ( "yuklash" ) // Poyafzal
Voila! Bizda zavod namunasi bor. E'tibor bering, biz bundan ham uzoqroqqa borishimiz va Shoe.create ning imzo turida "boot" ga o'tish Boot ni , "krossovka" Krossovkani va hokazolarni berishini ko'rsatgan bo'lardik, ammo bu zavod namunasidagi abstraktsiyani buzadi . bizga beradi (iste'molchi qanday aniq sinfni qaytarib olishini bilmasligi kerak, faqat sinf ma'lum bir interfeysni qondiradi).

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   85   86   87   88   89   90   91   92   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling