Konuyu Açan
#0
Decorator'lar, TypeScript ve JavaScript'te sınıflara, yöntemlere, özelliklere ve parametrelere ek işlevler eklemek için kullanılan bir yapıdadır. ES6 ile birlikte gelen sınıf yapısının bir parçasıdır ve özellikle Angular gibi modern frameworklerde yaygın olarak kullanılmaktadır. Decorator'lar, kodunuzu daha modüler ve okunabilir hale getirmek için güçlü bir araçtır.
Decorator'lar, genellikle aşağıdaki dört türde kullanılır:
Decorator'ların nasıl çalıştığını anlamak için basit bir örnek üzerinden ilerleyelim:
Yukarıdaki örnekte,
Decorator'lar, uygulama geliştirme sürecinde kodunuzu daha temiz ve yönetilebilir hale getirmek için önemli bir yapı taşını oluşturur. Örneğin, Angular'da bileşen tanımını kolaylaştırmak için sıkça kullanılır. TypeScript’in sağladığı bu güçlü özellikler ile kodunuzda daha fazla esneklik ve yeniden kullanılabilirlik sağlayabilirsiniz. Decorator'lar hakkında daha fazla bilgi ve örnekler, TypeScript belgelerinde detaylı bir şekilde bulunmaktadır.
Decorator'lar, genellikle aşağıdaki dört türde kullanılır:
- Sınıf Decorator'ları: Sınıfın tanımına uygulanan dekoratörlerdir. Sınıf dekoratörü, sınıfın tüm örnekleri için geçerli olan işlevselliği değiştirebilir.
- Yöntem Decorator'ları: Sınıfın bir yöntemine uygulanır ve genellikle yöntem çağrılmadan önce veya sonra belirli bir işlem yapmak için kullanılır.
- Özellik Decorator'ları: Sınıfın belirli bir özelliğine uygulanan dekoratörlerdir. Özelliklerin erişim düzenini değiştirmek için kullanılabilir.
- Parametre Decorator'ları: Bir yöntemin parametrelerine ek bilgi eklemek için kullanılır.
Decorator'ların nasıl çalıştığını anlamak için basit bir örnek üzerinden ilerleyelim:
CODE
123456789101112131415161718
function Log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
console.log([icode]Calling ${propertyKey} with[/icode], args);
return originalMethod.apply(this, args);
};
}
class MathOperations {
[user]Log[/user]
add(a: number, b: number) {
return a + b;
}
}
const math = new MathOperations();
math.add(5, 3);
Yukarıdaki örnekte,
Log adında bir yöntem dekoratörü tanımladık. Bu dekoratör, add yöntemine uygulandığında, bu yöntem çağrıldığında argümanları konsola yazdırır. Bu tür bir yapı, özellikle loglama, hata ayıklama veya performans izleme gibi işlemler için oldukça faydalıdır.Decorator'lar, uygulama geliştirme sürecinde kodunuzu daha temiz ve yönetilebilir hale getirmek için önemli bir yapı taşını oluşturur. Örneğin, Angular'da bileşen tanımını kolaylaştırmak için sıkça kullanılır. TypeScript’in sağladığı bu güçlü özellikler ile kodunuzda daha fazla esneklik ve yeniden kullanılabilirlik sağlayabilirsiniz. Decorator'lar hakkında daha fazla bilgi ve örnekler, TypeScript belgelerinde detaylı bir şekilde bulunmaktadır.