Design Patterns - Tasarım Kalıpları

Design Patterns - Tasarım Kalıpları

Kaynaklar

Yazılım mühendisliğinde, bir tasarım kalıbı yazılım tasarımında sıkça yaşanan bir sorunun genel, tekrarlanabilir bir çözümüdür. Bir tasarım kalıbı doğrudan koda çevrilebilen, bitmiş bir tasarım değildir. Birçok farklı durumda kullanılabilen, bir sorunun nasıl çözüleceğinin bir tanımı veya şablonudur.

Yazılım geliştiricilerin belirli yapıların iyi bilinen isimleriyle iletişimde bulunmasını da sağlar.

Yaratma tasarım kalıpları (Creational design patterns)

Bu tasarım kalıpları sınıflardan nesne oluşturmayla ilgilidir. Bu kalıplar ikiye ayrılabilir: sınıf oluşturma kalıpları ve nesne oluşturma kalıpları. Sınıf-oluşturma kalıpları kalıtımı etkin olarak kullanırken, nesne-oluşturma kalıpları delegasyonu etkin bir şekilde kullanır.

Abstract Factoryarrow-up-right Çeşitli sınıf aileleri için örnek yaratır.

Builderarrow-up-right Nesne oluşturmayı, nesnenin sunumundan ayırır.

Factory Methodarrow-up-right Çeşitli türemiş sınıflardan bir örnek yaratır.

Object Poolarrow-up-right Pahalı edinimlerden kaçınıır ve kullanılmayan nesneleri geri dönüştürerek kaynakları serbest bırakır.

Prototypearrow-up-right Kopyalanacak veya klonlanacak bir sınıf örneği

Singletonarrow-up-right Sadece bir örneği varolan bir sınıf

Yapısal tasarım kalıpları (Structural design patterns)

Bu tasarım kalıpları Sınıf ve Nesne kompozisyonuyla ilgilidir. Yapısal nesne-yaratma kalıpları arayüzleri oluşturmak için kalıtım kullanır. Yapısal nesne kalıpları yeni işlevsellik edinmek için nesneleri biraraya getirmek (compose) için gereken yolları tanımlar.

Adapterarrow-up-right Farklı sınıfların arayüzlerini eşleştirir.

Bridgearrow-up-right Bir nesnenin arayüzünü implementasyonundan ayırır.

Compositearrow-up-right Basit ve kompozit nesneler için bir ağaç yapısı.

Decoratorarrow-up-right Nesnelere dinamik olarak sorumluluk ekler.

Facadearrow-up-right Bütün bir altsistemi temsil eden bir nesne.

Flyweightarrow-up-right Verimli paylaşım için küçültülmüş bir örnek.

Private Class Dataarrow-up-right Erişim ve değiştirme erişimini kısıtlar.

Proxyarrow-up-right Başka bir nesneyi temsil eden bir nesne.

Davranışsal tasarım kalıpları (Behavioural design patterns)

Bu tasarım kalıpları nesnelerin arasındaki iletişimi hakkındadır.

Chain of responsibilityarrow-up-right Bir nesne zinciri arasında istek geçirmenin bir yolu.

Commandarrow-up-right Komut nesnesini bir nesne olarak enkapsüle eder.

Interpreterarrow-up-right Bir programda dil öğelerini dahil etmenin bir yolu.

Iteratorarrow-up-right Bir kolleksiyonun elemanlarına sırayla erişir.

Mediatorarrow-up-right Sınıflar arasında basitleştirilmiş bir iletişim tanımlar.

Mementoarrow-up-right Bir nesnenin dahili durumunu ele geçirir ve yeniden o duruma dönmesini sağlar.

Null Objectarrow-up-right Bir nesnenin varsayılan değeri gibi davranmak için tasarlanır.

Observerarrow-up-right Bir grup sınıfa değişimi bildirmenin bir yolu.

Statearrow-up-right Bir nesnenin durumu değişince davranışını değiştirir.

Strategyarrow-up-right Bir sınıfın içinde bir algoritma enkapsüle eder.

Template methodarrow-up-right Bir algoritmanın asıl adımlarını alt sınıfa bırakır.

Visitorarrow-up-right Bir sınıf değişmeden, o sınıfa yeni bir operasyon tanımlar.

Last updated