Design Patterns (Tasarım Kalıpları) Nedir ?
✨Öncelikle tekrardan merhabalar, bu yazımda yazılım geliştirmenin olmazsa olmazlarından olan, her yazılımcının hayatında yolunun en az bir defa kesiştiği çok önemli bir konuya değineceğim: Desing Patterns.
Tasarım Kalıplarının Doğuşu
Hayatımızın her anında aslında her birimiz bir problemi çözeriz veya çözümü için yollar ararız. Yazılım geliştirmede de bu iş böyledir. Geliştireceğiniz üründe her şey güzel giderken birden karşınıza bir hata çıkıverir.
Tabi hayatta her şey güzel olacak değil :) Bu sorunlarla başa çıkmak çok önemli. Ve hepimiz bunu bir şekilde yapıyoruz. Bazen o kadar çok problem çözmüş oluruz ki bazı problemler birbirini tekrar ediyormuş gibi gelir. Ya da bizler onu o yöntemle çözeriz. Fakat sonuçta çözebilmişizdir. Ve benzer bir sorun karşımıza çıktığında aslında tekrardan önceki problem için ürettiğimiz yöntemleri kullanırız.
Tıpkı bunun gibi yazılım geliştirirken de bazı problemler aslında hep tekrar eder. Bu tekrar eden problemlere bulduğumuz veya daha öncesinde bulunan çözümlere design patterns(tasarım kalıpları) denir.
Tasarım Kalıpları (Desing Patterns) Nedir ?
Yazılım geliştirmede daha öncesinde karşımıza çıkan sorunlara genel çözümlere design patterns denir. Bu tasarım kalıpları yazılım geliştiriciler tarafından defalarca deneme yanılma yapılması sonucu bulunmuştur. Şu an dünya genelinde bilinen 40–50 civarı desing pattern bulunmakta. Fakat sizler de kendi sorunlarınızın çözümleri için kendi tasarım kalıplarınızı oluşturabilirsiniz.
Desing Patterns’lar kullanım durumlarına göre 3'e ayrılırlar.
- Creational Patterns (Yaratımsal Kalıplar)
- Structural Patterns (Yapısal Kalıplar)
- Behavioral Patterns (Davranışsal Kalıplar)
Creational Patterns (Yaratımsal Kalıplar)
Bu tasarım deseni nesneleri doğrudan new operatörü kullanarak oluşturmak yerine nesne oluşturma mantığını gizleyerek sınıflardan nesne oluşturmaya alternatif çözümler sunar. Bu program akışında hangi nesneye ihtiyaç varsa onu oluşturmada esneklik ve kolaylık sağlar.
Bu başlığa ait popüler desing patternlar:
- Singleton Pattern
- Factory Pattern
- Abstract Factory Pattern
- Builder Pattern
- Prototype Pattern
Structural Patterns (Yapısal Kalıplar)
Yapısal kalıplar, özellikle sınıf ve nesne yapısıyla ilgili tasarım sorunlarını çözmek için kullanılır. Bu desenler, mevcut nesnelerin yapısını değiştirmeden veya birleştirmeden yeni bir yapı oluşturmak için bir arayüz sağlar.
Bu başlığa ait popüler desing patternlar:
- Adapter Pattern
- Bridge Pattern
- Filter Pattern
- Composite Pattern
- Decorator Pattern
- Facade Pattern
- Flyweight Pattern
- Proxy Pattern
Behavioral Patterns (Davranışsal Kalıplar)
Davranışsal kalıplar, bir programın davranışını modellemek ve sorumlulukları doğru şekilde dağıtmak için kullanılır. Bu desenler, nesneler arasındaki iletişimi, olayları, komutları ve diğer davranışları kontrol etmek için kullanılır.
Bu başlığa ait popüler desing patternlar:
- Chain of Responsibility Pattern
- Command Pattern
- Interpreter Pattern
- Iterator Pattern
- Mediator Pattern
- Memento Pattern
- Observer Pattern
- Null Object Pattern
- Strategy Pattern
- State Pattern
- Visitor Pattern
Anti Pattern Nedir?
Anti Pattern, bir problemi çözmek için kullanılan kötü çözümler için kullanılan bir kavramdır. Yani çözüm aranan probleme uygun olmayan pattern seçimi veya verimsiz, gereksiz patternlar bu kavram dahilindedir.
Böylelikle design patternlar hakkında kısa bir bilgilendirme yapmış oldum. İlerileyen yazılarımda desing patternleri tek tek incelemeyi düşünüyorum. Şimdiden bu yazılarım için takip etmeyi unutmayınız :) Sağlıcakla…👋