Sobes.tech
Senior

Digər proqramlaşdırma dillərində istifadə etdiyiniz dizayn nümunələrini TypeScript-də istifadə olunan nümunələrlə müqayisə edin.

sobes.tech Süni İntellekt

AI-dan cavab

TypeScript-də ön tərəf inkişafı adətən klassik dizayn nümunələrinə əsaslanır və onları JavaScript-in xüsusiyyətlərinə və statik tip yoxlamasına uyğunlaşdırır. Fərqlər əsasən JS-in dinamikliyi və TS-in imkanları ilə əlaqədardır.

Əsas nümunələr, TypeScript-də tez-tez rast gəlinənlər:

  • Singleton: Statik xüsusiyyət və ya tək nümunəni qaytaran funksiya vasitəsilə həyata keçirilir. Daha sərt giriş nəzarəti olan dillərlə müqayisədə, JS/TS-də bu daha çox razılaşmadır.
  • Factory Method / Abstract Factory: Obrazların yaradılması üçün istifadə olunur. TS-də interfeyslər vasitəsilə fabrik və siniflərin müqavilələrini müəyyən etmək mümkündür ki, bu da saf JS-ə nisbətən tip təhlükəsizliyini artırır.
  • Observer: Abunəlik və bildirişlər üçün tez-tez istifadə olunur, məsələn, reaktiv kitabxanalarda və ya hadisələrlə işləyərkən. Abunəçilərin və hadisə məlumatlarının tip yoxlaması etibarlılığı artırır.
  • Strategy: Müxtəlif alqoritmləri inkapsulyasiya etməyə və onları işləmə vaxtında seçməyə imkan verir. TypeScript bütün strategiyaların eyni interfeysi həyata keçirdiyindən əmin olur.

C11 ilə digər dillərdə (C# / Java kimi nümunələr) müqayisə:

Nümunə TypeScript (Xüsusiyyətlər) Digər dillər (C# / Java) (Xüsusiyyətlər)
Singleton Razılaşmadan asılıdır, sərt giriş modifikatorları yoxdur. Çox vaxt private konstruktor və statik metod ilə həyata keçirilir.
Factory Interfeyslər vasitəsilə müqavilələrin istifadə olunması. Güclü tip yoxlaması, abstract siniflər.
Observer Reaktiv proqramlaşdırmada geniş istifadə olunur. Çox vaxt siniflər və event / dinləyicilər ilə.
Strategy Davranışların müəyyən edilməsi üçün interfeyslərdən istifadə. Interfeyslər və ya abstrakt siniflər vasitəsilə həyata keçirilir.
Decorator @ sintaksisi ilə daxili dəstək. Miras alma və ya bükmə vasitəsilə həyata keçirilir.
Adapter Yüksək səviyyəli funksiyaların əlçatanlığı asanlaşdırır. Əsasən miras alma və ya kompozisiya vasitəsilə həyata keçirilir.

Fərqlər:

  • JS-in dinamik təbiəti: Bəzi nümunələr, introspeksiya və ya dinamik obyekt yaradılması ilə əlaqəli olanlar, saf JS-də daha sadə ola bilər, lakin TypeScript təhlükəsizlik səviyyəsini artırır.
  • Tip yoxlaması: Ən vacib fərqdir. TypeScript interfeyslər, generiklər və statik analiz istifadə edərək nümunələri daha etibarlı edir. Məsələn, Decorator nümunəsi TypeScript-də daxili dəstəyə malikdir.
  • Asinxronlik: Asinxronluq ilə əlaqəli nümunələr (məsələn, Promises, async/await) ön tərəf inkişafında daha mərkəzi və TypeScript onları yaxşı dəstəkləyir.

TypeScript-də Singleton nümunəsinin nümunəsi:

class Singleton {
  private static instance: Singleton;
  private constructor() {
    // İnitilizasiya
  }
  public static getInstance(): Singleton {
    if (!Singleton.instance) {
      Singleton.instance = new Singleton();
    }
    return Singleton.instance;
  }
  // Sinif metodları
}

Ümumilikdə, TypeScript-də nümunələr klassik prinsipləri əks etdirir, lakin JavaScript ekosisteminə uyğunlaşdırılmışdır və kodun keyfiyyətini və səhvlərin qarşısını almaq üçün statik tip yoxlaması imkanlarından fəal istifadə edir.