Adapter Pattern Nedir

Bu yazımda Adapter Pattern i açıklamaya çalışacağım.Decorator patternde,objelerimizi sarıp onlara yeni sorumluluklar veriyorduk.Amerika dan aldığımız laptop vs priz girişlerinin farklı olduğu dikkatinizi çekmiştir.Bu prizleri Türkiye de kullanabilmek için adaptör alırız.Bu gerçek yaşamdan kısacası bu örneği verebiliriz.Peki design pattern de kulanımı nasıl,bir interface i uygularlar ve client in beklediği duruma adapte ederler diyebiliriz. Var olan bir […]

Command Design Pattern

Command Design Pattern,Behavioral(Davranışsal) tasarım kalıplarından birisidir. Genellikle,algoritmayı ,nesneler arasındaki ilişki ve sorumlulukları yönetmek için kullanılır. GOF kitabında tanım olarak aşağıdaki ifade verilmiştir. Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.

Singleton Pattern

Singleton pattern,kısaca nesnemizden sadece bir örnek oluşturulup kullanılmasıdır. Hangi durumlarda kullanırız.Thread pools,cache,kayıt defteri gibi merkezi durumda olan ayarları kullanan objeler,loglama için kullanacağımız obje leri yaratırken bu pattern i uygulayabiliriz.Birden fazla obje oluşturmanın sistem üzerinde oluşturacağı yanlış durumlar oluşturacağı zaman yararlanabiliriz. Global variable tanımlayıp kullanmadan farkı nedir diyecek olursak,global variable atadığımız bu obje uygulamanın başlangıcında oluşturulur.Bu […]

C# Observer Pattern Kullanımı

Her hafta bir desgin pattern yazmaya çalışacaktım ama bu disiplini sağlamakta hayat koşuşturmasında biraz geciktiriyorum. Bu kısa makalede behavioral(davranışsal) tasarım kalıpları grubunda yer alan,observer tasarım desenini anlatmaya çalışacağım. Observer pattern,objeler arasında one-to-many ilişkiye sahip,bir objenin durumu değiştiğinde diğer objelerinde haberdar olmasını sağlayan bir yapıdır.Publisher/Subscriber olarak tanımlanmaktadır.Bir publisher(yayınlayıcı) vardır ve diğer üyeler bu publisher e subscriber […]

Abstract Factory Method

Abstract factory pattern,concrete sınıfları belirtmeden ilgili veya bağımlı nesnelerin ailelerini oluşturmak bir interface sağlayarak yazılır.Factory of factories diye de tanımlanır. (Factory türkçe karşılığı fabrika/imalathane olarak geçmektedir.Buradan yola çıkarak bir üretici olarak tanımlayabiliriz) Örnek verecek olursak,aşağıda interface lerimizi ve bu interfaceleri implemente eden concrete sınıflarımızı yazdık.

Interface Segregation Principle

Birbirinden bağımsız birden fazla method içeren interface ler yerine daha küçük interface ler yazmak daha maküldür.Yabancı literatürlerde bu çok method ihtiva eden interface ler fat interface olarak geçiyor.Bu şekilde interface leri kullandığımızda impplemente ettiğimiz her  nesnenin interface in barındırdığı özelliklerine sahip olması gerekmeyebilir.Bu durumda o methodlar boş olarak kalacaktır.Bu kötü kullanıma örnek vermek gerekirse. interface […]

Template Method Pattern

Design Pattern ler yazılım geliştirme de tekrarlanan problemleri ve karmaşıklığa neden olan durumlar için çözüm sunar.3 ana kategoriye ayrılır.Bunlar Creational,Structural ve Behavioral dur. Template Method Pattern,Behavioral(davranışsal) kategorisinde yer alır. Bu pattern,ana(base) sınıfınızda yapınızı oluşturacak algoritmalarınız,eğer ana sınıfınızdan türeyen alt sınıflarınızda farklılıklar gösterecekse faydalıdır.Kısacası,template method pattern,ana(base) sınıfınızda tanımlanır ve algoritmanızın belirli adımları alt sınıflarda tekrar tanımlanır.Diğer […]

Profiling Decorators Örnek

.Net gibi yüksek seviyeli dillerde geliştirme yaparken,düşük seviyeli dillere göre daha hızlı geliştirme yaparız.Memory management vs gibi durumlarla sorumluluğu .Net aldığı için biz herhangi bir geliştirme yapmak durumda kalmayız.C# hızlı geliştirme sunan ama çalışma zamanında yavaş olarak tanımlanır. .Net framework hızlı olmasına rağmen,performans sorunlarıyla karşılaşabiliriz.Kodun hangi bölümü nün yavaş olduğunu,uygulamamızın methodlarını profiling ederek istatistik toplayıp yorumda […]

Decorator Pattern

Decorator pattern her sınıfın tek bir sorumluluğa sahip olduğundan emin olmak için mükemmel bir yoldur.Sınıflar sıklıkla birçok işlem yapabilirler,sorumluluklarını diğer sınıflara ayırmadan. Sorumluluklar birbirine yakin görülebilir. Decorator pattern in temel koşulu,her bir decorator sınıfının tip sözleşmesini yerine getirmesi ve ayrıca bir veya birden fazla bu tiplerin constructor parametresi olarak geçilebilmesidir.Bu yararlıdır,çünkü işlevsellik belirli bir interface […]