6, Nis 2023
Design Pattern (Tasarım Kalıpları) Nedir?

Zaman zaman hepimiz hayatımızda çeşitli sorunlar ile karşılaşmışızdır. Günlük hayatta yaşadığımız sorunları kendi imkanlarımızla çözmeye kalkıştığımızda sonuç kimi zaman yaratıcı ve kimi zaman komik olabilmekte.

Peki yazılım sektöründe karşılaştığımız bu sorunların çözümlerini bir araya getirseydik nasıl olurdu?

Tasarım Kalıpları (Design Pattern) Nedir?

Design Pattern, yazılım geliştiricilerinin yazılım geliştirirken karşılaştıkları sorunların genel çözümleridir. Yazılım tasarımında ortaya çıkan yaygın sorunlara karşı en basit ve en efektif biçimde yeniden kullanılabilir çözümler sağlar.

Temelleri 1970 yılında ilk olarak mimarlar tarafından atılan, 1994 senesinde Dörtlü Çete (Gang of Four) tarafından yayınlanan kitap ile popülarite kazanarak design patterns yazılımda kullanılmasında dönüm noktası olmuştur. Dörtlü Çete kitaplarında da 23 adet Design Patterns’i konu almıştır.

Ancak bu sayı günümüzde çok daha fazladır. Proje geliştirirken kendi design patternizi oluşturabilir ve kendi çözümünüzü bulabilirsiniz. Ancak var olan çözümleri bilip uygun olan yerde kullanmak sizin için en doğrusu olacaktır. Tasarım yaparken bir problem ortaya çıkarsa, hangi yolu kullanarak çözebilirim diye düşünülmeli, ve uygun pattern(kalıp) bulunmalıdır.

  • Bilinen problemler için genel bir çözümdür ancak ihtiyaçlarınıza göre uyarlanmıştır. Belirli bir soruna bağlı olmayan bir biçimde belgelenmiş genel çözümler sağlar.
  • Kanıtlanmış çözümlerdir.
  • Etkileyicidirler ve işlerin bakımını kolaylaştırırlar.
  • Birçok geliştirici Design Patterns‘a aşina olduğu için bunun bir tür geliştirme standardı olduğunu söyleyebiliriz.
  • Design patterns, genelde Nesne Tabanlı Programlama (Object Oriented Programming) için kullanıldığı düşünülüyor olsa da dilden ve programlama paradigmalarından bağımsızdır. Yani farklı bir paradigma için de çözümler üretilebilir. Belirli bir tasarımı projede kullanmak istediğiniz dilde kolaylıkla uygulayabilirsiniz.

Design Pattern Ne Değildir?

Nesneler arası ilişkiler genellikle UML diyagramları ile gösterilir, bu sayede yazılımcılar arasında ortak bir iletişim dili oluşmuş olur.

Design patterns, doğrudan koda dönüştürülebilen bitmiş bir tasarım değildir. Birçok farklı durumda kullanılabilecek bir sorunun nasıl çözüleceğine ilişkin bir açıklama veya şablondur.

Tasarım Kalıpları(Design Pattern) Nedir?

Design Pattern’e Neden İhtiyaç Duyarız?

  • Design Patterns, test edilmiş, kanıtlanmış geliştirme paradigmaları sağlayarak geliştirme sürecini hızlandırabilir.
  • Kodunuzu, daha basit tutmak gerektiğinde kodu daha anlamlı ve daha az karmaşık hale getirmeye yardımcı olurlar.
  • Büyük sorunlara neden olabilecek ince sorunları önlemeye yardımcı olur ve ayrıca kod okunabilirliğini artırır.
  • Ortak bir programlama sorununa karşı standart bir çözüm işlemi, yazılımın büyük ölçekte yeniden kullanılmasını sağlar.

Design Pattern Kategorileri

Yazılım tasarım kalıpları genel olarak 3 ana başlıkta incelenir. Bunlar şunlardır:

  1. Creational Patterns (Yaratımsal Kalıplar): Nesnelerin oluşturulmasında ve yönetilmesinde kullanılan bir desendir. Bu program akışında hangi nesneye ihtiyaç varsa onu oluşturmada esneklik ve kolaylık sağlar.
  2. Structural Patterns (Yapısal Kalıplar): Birden fazla sınıfın bir işi yerine getirirken nasıl davranacağını belirlemek için kullanılan desenlerdir.
  3. Behavioral Patterns (Davranışsal Kalıplar): Nesnelerin birbirleri ile ilişkisini düzenleyen desendir.

Creational Patterns (Yaratımsal Kalıplar)

  • Singleton Pattern
  • Factory Pattern
  • Abstract Factory Pattern
  • Builder Pattern
  • Prototype Pattern

Creational Patterns (Yaratımsal Kalıplar)

Structural Patterns (Yapısal Kalıplar)

  • Adapter Pattern
  • Bridge Pattern
  • Filter Pattern
  • Composite Pattern
  • Decorator Pattern
  • Facade Pattern
  • Flyweight Pattern
  • Proxy Pattern

Structural Patterns (Yapısal Kalıplar)

Behavioral Patterns (Davranışsal Kalıplar)

  • Command Pattern
  • Interpreter Pattern
  • Iterator Pattern
  • Mediator Pattern
  • Memento Pattern
  • Observer Pattern
  • Null Object Pattern
  • Strategy Pattern
  • State Pattern
  • Visitor Pattern Popüler tasarım kalıpları bu şekildedir.

Behavioral Patterns (Davranışsal Kalıplar)

Anti Pattern Nedir?

Anti patternler de bir patterndir ama yazılımsal olarak bir problemi kabul edilmiş bir pattern olarak kullanmak yerine sorunları özgün bir yöntem ile çözmek demektir. Yani tasarım kalıplarının tam zıttıdır diyebiliriz.

Probleminizde bir anti pattern kullanmak ileride ciddi sorunlara yol açabilir. Ayrıca o problem için anti pattern olarak sayılan bir tasarım başka bir problem için uygun bir çözüm olabilir bunu unutmamak gerek. Bu anti patternler belgelenmiştir.

Anti patternlerin belgelenmesinin avantajı programcının bu yöntemlerden mümkün olduğunca uzak durabilmesini sağlamak karşılaştırma yapabileceği bir kaynak sunmaktır.

Bazı anti patternler şunlardır:

Anti Patternler:

  • Magic Push Button
  • Spagetti Coding
  • Functional Decomposition
  • Error Hidding
  • Swiss Army Knife
  • Cricular Dependency
  • God Object
  • Cargo Cult Programming
  • Golden Hammer
  • Boat Anchor
  • Copy Paste Programming

 

 

 

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir