9-) Decorator Design Pattern

recep orhan
Aug 3, 2021

Decorator design pattern dinamik olarak nesneye yeni özellikler kazandırılmasını sağlar.

Şu öğeleri içerir;

Component: Yeni özellikler eklenmesini istediğimiz sınıfların inherit edileceği soyuttur.

ConcreteComponent: Component soyutunun yeni özellikler kazandırılarak implemente edilmiş somut halidir.

Decorator: Decorator da component soyutunun implemente edilmiş soyut bir objedir. İçerisinde component türünde bir property barındırarak onu özelleştirme işlemlerini yapar.

ConcreteDecorator: Component’e yeni özellikler ekleyen, decorator’dan türetilmiş somut sınıftır.

Örnek Senaryor:

Bir otomobilin donanım paketlerine göre fiyat ve özellikler bakımından değişmesini decorator design patternı ile uygulayacağız. Öncelikle ICar (Component) interface’i ve Car(ConcreteComponent) sınıfını oluşturalım.

İçerisinde bir adet car sınıfından obje barındıran ve car sınıfına yeni özellikler ekleyecek donanım paketlerini (ConcreteDecorator)tanımlayalım.

Car sınıfından bir instance alarak paketler yardımıyla özelleştirelim.

program çıktısı şu şekilde olacaktır.

c

Car nesnesine her paket(ConcrateDecorater) ile farklı özellikler kazandırdık.

Makalenin kodlarına ve diğer design pattern örneklerine tıklayarak ulaşabilirsiniz.

--

--