.NET Framework İçerisindeki Tasarım Deseni Örnekleri

Merhabalar,

Bu yazımda sizlere .Net framework içerisinde yer alan tasarım desenlerinden (design patterns) bahsedeceğim. Farkında olmadan bu tasarım desenlerinin örneklerini kullanıyoruz.

Factory Tasarım Deseni

Factory tasarım deseni aynı abstract sınıfı veya arayüzü uygulayan sınıfların üretiminden sorumludur. En çok bilinen ve kullanılan tasarım desenlerinden olan Factory tasarım deseninin .Net framework içerisinde en güzel örneğini Convert sınfında görebiliriz. İlkel veri tipleri arasında tip değişiklikleri yapmamıza olanak sağlar.

Iterator Tasarım Deseni

Kümelenmiş veri setleri üzerinde dolaşmamıza imkan sağlayan bu tasarım deseni. .Net framework içerisinde IEnumerable sınıfı içerisinde örneklenmiştir. IEnumerable arayüzünü implemente etmiş sınıflar,koleksiyonlar(Collections) içerisinde foreach ile tek tek dolaşmamıza imkan verir.

Örnek olarak bir koleksiyon sınıfı olan ArrayList oluşturup bu sınıfın objelerini foreach kullanarak ekranda gösterdim.

ArrayList sınıfının IEnumerable arayüzünü implemente ettiğini aşağıda görebiliriz. Burada Iterator tasarım deseninin bir örneğini görmüş olduk.

Builder Tasarım Deseni

Birden fazla parçadan oluşan nesnelerin üretilmesinden sorumlu bir tasarım desenidir. Builder tasarım deseni .Net Framework içerisinde birkaç yerde kullanılmıştır. En belirgin örneği veritabanı bağlantı cümleciğinin(connection string) oluşturulmasıdır. Aşağıda DataCatalog,InitialCatalog,IntegratedSecurity,Pooling alanları alarak bir sql veritabanı bağlantısı oluşturulmuştur.

.Net framework içerisinde builder tasarım deseninin bir başka örneği de UriBuilder sınıfıdır.

Observer Tasarım Deseni

Observer tasarım desenindeki objeler arasında 1’e n sayıda ilişki tanımlanır ve bir objede değişiklik olduğunda ona bağlı olan diğer objeler de bilgilendirilir ve otomatik olarak güncellenir. Net framework içerisinde event’ler örnek gösterilebilir. .Net Framework’ün 4.0 versiyonu ile birlikte IObserverable arayüzü ile observer tasarımı deseni desteği direk olarak sağlanmıştır.Bir objedeki değişimin ona bağlı objelere bildirim gönderilmesi ve bu objelerin de otomatik güncellenmesi sağlanır.

Decorator Tasarım Deseni

Objelere dinamik olarak yeni özellikler eklenmesinin sağlayan bir tasarım desenidir. .Net Framework içerisinde bu tasarım deseninin en güzel örneği Stream sınıfı ve ondan türetilmiş sınıflardır.

Her biri Stream sınıfından türetilmiş her biri temelde stream’leri işlemek için kullanılır ancak her biri farklı stream çeşitlerine hizmet eder.

Prototype Pattern

Prototip deseninde referans türünden nesneler bir nesne kopyalama şekli olan derin-kopyalama (deep-copy ) metodu ile kopyalanabilir. Bu methotta yeni referans değişkenine atanması için nesneler kopyalanır. Bu, bellekte aynı türden iki nesnenin oluşturulması anlamına gelmektedir. .Net framework içerisinde örnekleri Cloning ve Serialization’dır.

Referanslar

1. https://stackoverflow.com/questions/3252499/what-design-patterns-are-used-throughout-the-net-framework

2. http://naveensanks.blogspot.com.tr/2011/07/examples-of-design-patterns-used-in-net.html