Junior — Middle
Nesne yönelimli programlamada Dekorasyon deseninin kavramını ve kullanımını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Decorator Deseni, nesneleri yeni sorumluluklar ekleyerek, diğer decorator nesneleriyle sarmalayarak, sınıfın kaynak kodunu değiştirmeden dinamik olarak yeni sorumluluklar eklemeye olanak tanır. Bu, özellikle kalıtım olmadan işlevselliği genişletmek istendiğinde faydalıdır.
Örnek: temel bir İçecek arayüzü ve fiyat() metodu vardır. Bir Kahve sınıfı oluşturabilir ve ardından Sütle, Şekerle dekoratörleri ekleyerek maliyeti artırabilir ve davranışı değiştirebilirsiniz.
interface İçecek {
double fiyat();
}
class Kahve implements İçecek {
public double fiyat() { return 5.0; }
}
class SütDekorator implements İçecek {
private İçecek içecek;
public SütDekorator(İçecek içecek) { this.içecek = içecek; }
public double fiyat() { return içecek.fiyat() + 1.0; }
}
// Kullanım
İçecek kahve = new Kahve();
İçecek kahveSütle = new SütDekorator(kahve);
System.out.println(kahveSütle.fiyat()); // 6.0
Bu şekilde, işlevselliği esnek bir şekilde birleştirebilir, çok sayıda alt sınıf oluşturmadan yapabilirsiniz.