Dispose Deseni (ARCH3082)
Anahtar typescript.performance.dispose-pattern · Önem warning · Kategori performance
Bir sınıf kapatılabilir/serbest bırakılabilir alanlara sahipse ancak temizleme sözleşmesini uygulamıyorsa, sahip olduğu kaynaklar hiç serbest bırakılmaz.
Hatalı
Bölüm başlığı “Hatalı”class Logger { private stream = fs.createWriteStream("log.txt");
write(msg: string): void { this.stream.write(msg); } // dispose yok - stream sızar}class Logger implements Disposable { private stream = fs.createWriteStream("log.txt");
write(msg: string): void { this.stream.write(msg); }
[Symbol.dispose](): void { this.stream.close(); }}Düzeltme
Bölüm başlığı “Düzeltme”Kapatılabilir alanlar tutan sınıflarda temizleme sözleşmesini (Disposable) uygulayıp sahip olunan kaynakları serbest bırakın.