PROGRAMLAMA

DECORATOR ŞABLONU

Decorator şablonu belirli nesnelerin davranışlarını yeni türetilmiş sınıflar oluşturmadan değiştirmimize yardımcı olur. Varsayılım ki sekiz nesneyi kullanan bir uygulamamız var, fakat bunlardan üç tanesinin ek özelliklere ihtiyacı var. Bu el özellikleri dinamik olarak ekleme işlemini sağlar.


Örneğin; bir GUI bileşenine kenarlıklar(border) eklemek istiyoruz yada kaydırma çubuğu (scrollbars) eklemek istiyoruz. Bu nesneden iki yeni nesne türeterek bu işlemi yapabiliriz. Bu şekilde yaparsak her nesne için kenarlık çizdirmek için kenarlık çizimide yapabilen yeni nesneler türetmemiz gereklidir. Hepsinde yapılan işlem kenarlık çizmedir, buna rağmen tüm kenarlığa ihtiyacı olan bileşenler için yeni sınıflar türetmemiz gerekir.


Bu gibi durumlarda Decorator kullanılır.



Bir window nesnemiz olsun ve bu pencereye dinamik olarak kaydırma çubuğu(scroll) ve kenarlık(border) özelliği eklemek istiyelim.