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 Factory Çeşitli sınıf aileleri için örnek yaratır.

Builder Nesne oluşturmayı, nesnenin sunumundan ayırır.

Factory Method Çeşitli türemiş sınıflardan bir örnek yaratır.

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

Prototype Kopyalanacak veya klonlanacak bir sınıf örneği

Singleton 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.

Adapter Farklı sınıfların arayüzlerini eşleştirir.

Bridge Bir nesnenin arayüzünü implementasyonundan ayırır.

Composite Basit ve kompozit nesneler için bir ağaç yapısı.

Decorator Nesnelere dinamik olarak sorumluluk ekler.

Facade Bütün bir altsistemi temsil eden bir nesne.

Flyweight Verimli paylaşım için küçültülmüş bir örnek.

Private Class Data Erişim ve değiştirme erişimini kısıtlar.

Proxy 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 responsibility Bir nesne zinciri arasında istek geçirmenin bir yolu.

Command Komut nesnesini bir nesne olarak enkapsüle eder.

Interpreter Bir programda dil öğelerini dahil etmenin bir yolu.

Iterator Bir kolleksiyonun elemanlarına sırayla erişir.

Mediator Sınıflar arasında basitleştirilmiş bir iletişim tanımlar.

Memento Bir nesnenin dahili durumunu ele geçirir ve yeniden o duruma dönmesini sağlar.

Null Object Bir nesnenin varsayılan değeri gibi davranmak için tasarlanır.

Observer Bir grup sınıfa değişimi bildirmenin bir yolu.

State Bir nesnenin durumu değişince davranışını değiştirir.

Strategy Bir sınıfın içinde bir algoritma enkapsüle eder.

Template method Bir algoritmanın asıl adımlarını alt sınıfa bırakır.

Visitor Bir sınıf değişmeden, o sınıfa yeni bir operasyon tanımlar.

Last updated