Kodkitabi

Soyut Sınıflar ve Arayüzler

TypeScript içinde soyut sınıflar ve arayüzler kavramını, kullanım sınırlarını ve güvenilir uygulama biçimini öğrenin.

Soyut Sınıflar ve Arayüzler, TypeScript ile nesne yönelimli tasarım çalışırken bileşenler arasındaki sorumlulukları belirginleştirmek için kullanılan yaklaşımı açıklar. Bir tür, veriyi ve o veriyi koruyan davranışları aynı sözleşmede birleştirir; kurucu geçerli başlangıç durumunu garanti etmelidir.

Yalnızca alan taşıyan yapıları gereksiz kalıtım hiyerarşilerine çevirmek yerine değer semantiğini ve değişmezliği değerlendirmek gerekir. İsimlendirme, küçük sorumluluklar ve görünür veri akışı; kodun yalnızca çalışmasını değil, anlaşılmasını da sağlar. Aşağıdaki örnek, konuyu küçük ve izlenebilir bir akış içinde gösterir.

Yaygın hata ve doğru yaklaşım

Girdi, çıktı ve hata sözleşmesini belirsiz bırakmak çağıran kodu kırılgan hâle getirir. Normal akış kadar başarısızlık davranışını da açıkça tasarlayın.

Sonuç

Soyut Sınıflar ve Arayüzler, doğru sınırlar ve açık bir sözleşmeyle kullanıldığında TypeScript kodunun güvenilirliğini artırır. Önce doğruluğu kurun; ölçüm göstermeden karmaşık optimizasyona yönelmeyin.

Soyut Sınıflar ve Arayüzler örneği
interface Repository<T extends { id: number }> {
  find(id: number): Promise<T | undefined>;
}

class MemoryRepository<T extends { id: number }> implements Repository<T> {
  constructor(private readonly items: T[]) {}
  async find(id: number): Promise<T | undefined> {
    return this.items.find(item => item.id === id);
  }
}