Design Pattern Nedir?

ismail kaşan
3 min readAug 18, 2019

--

Design Pattern

Yazılım dünyasında temel bir yazılım diline sahip bir yazılımcı küçük çaplı projeleri rahatlıkla yazabilir. Fakat projeler büyüdükçe işler farklılaşmaya başlar. Örneğin küçük bir blog sitesi, bir araba kiralama tanıtım sitesi gibi projelerden temel bir dil bilgisiyle başa çıkılabilir. Ancak bir devletin vatandaş portali gibi yada tüm dünyada satış yapan bir e-ticaret platformu gibi projeler büyükçe işler biraz daha da değişiyor. Kullanıcı sayısı artıkça performansın da önemi ortaya çıkmaya başlıyor.

Haliyle de teknoloji sürekli değişiyor ve yeni teknolojiler çıkıyor. Projenin bu değişikliğe en hızlı şekilde adapte olması gerekiyor. Bu adapte sürecinde kodların çok yalın ve karmaşık olmaması lazım. İşte bu noktada tasarım kalıplarının zorunluluğu ortaya çıkmış oluyor.

Peki Design Pattern Nedir?

Tasarım desenleri, deneyimli nesne yönelimli yazılım geliştiriciler tarafından kullanılan en iyi uygulamaları temsil eder. Tasarım kalıpları, yazılım geliştiricilerin yazılım geliştirme sırasında karşılaştıkları genel sorunların çözümleridir. Bu çözümler, oldukça uzun bir süre boyunca sayısız yazılım geliştiricisi tarafından deneme yanılma yoluyla elde edilmiştir.

Desing Pattern’lerin Kullanımı

Tasarım desenleri yazılım geliştirmede iki ana kullanım alanına sahiptir.Bunlar;

Geliştiriciler için ortak platform: Tasarım desenleri standart bir terminoloji sağlar ve belirli senaryolara özgüdür. Örneğin, bir singleton tasarım deseni, tek bir nesnenin kullanımını belirtir, böylece tek tasarım modeline aşina olan tüm geliştiriciler, tek nesneden yararlanır ve programın bir singleton modelini takip ettiğini söyleyebilirler.

Pratik Uygulamaları: Tasarım Desenleri uzun bir süredir gelişmiştir ve yazılım geliştirme sırasında karşılaşılan bazı sorunlara en iyi çözümleri sunmaktadır. Bu kalıpları öğrenmek, deneyimsiz geliştiricilerin yazılım tasarımını kolay ve hızlı bir şekilde öğrenmelerine yardımcı olur.

Design Pattern Türleri: 1994 yılında dört yazar Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides, Yazılım geliştirmede tasarım deseni kavramını başlatan tasarım desenleri — Yeniden Kullanılabilir Nesneye Yönelik Yazılım Öğeleri başlıklı bir kitap yayımladı. Buradan bakabilirsiniz.

Bu yazarlar toplu olarak Dörtlü “Gang of Four” olarak bilinir. Bu yazarlara göre tasarım desenleri öncelikle nesne yönelimli tasarım ilkelerine dayanmaktadır. Bu dörtlü kitaplarında 3 kategoride 23 farklı kalıba yer vermişlerdir.

Creational: Nesneleri yaratmakta kullanılan 5 adet tasarım kalıbı. Yazılım sistemindeki nesnelerin yaratılışı hakkında yol gösterirler. Bunlar;

  1. Factory Method
  2. Singleton
  3. Abstract Factory
  4. Builder

Structural: Nesneler arasındaki yapıları ifade eden ilişkilerden 7 adet tasarım kalıbı. Yazılım sistemindeki nesnelerin birbirleriyle olan ilişkilerini gösteren kalıptır.

  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Proxy

Behavioral: Nesnelerin çalışma zamanına ait davranışlarını değiştirmek için oluşturulan tasarımlardan 11 adet tasarım kalıbı var. Nesne davranışlarını takip eden kalıptır.

  1. Iterator
  2. Observer
  3. Memento
  4. Mediator
  5. Chain of Responsibility
  6. Command
  7. Observer
  8. State
  9. Strategy
  10. Template Method
  11. Visitor

Tasarım kalıpları, yazılım mühendisliği alanında yaygın olarak kullanılan bir yaklaşım olup, birçok yazılım projesinin tasarım ve geliştirme süreçlerinde başarıyla uygulanmaktadır. Bu kalıplar, çözümlenmesi zor olan sorunlara karşı etkili bir şekilde çözümler sunmak için kullanılan standart çözüm yaklaşımlarını temsil eder. Tasarım kalıpları, yazılım geliştiricilerinin tekrarlanan problemleri yeniden keşfetmelerini önleyerek, kodun yeniden kullanılabilirliğini ve sürdürülebilirliğini arttırır. Buna ek olarak, tasarım kalıpları, yazılım uygulamalarının performansını, güvenilirliğini ve esnekliğini artırabilir. Bu nedenle, tasarım kalıplarının kullanımı, yazılım geliştirme süreçlerinde çok önemlidir ve yazılım mühendislerinin bilgi birikimlerinde yer almalıdır.

Yararlanılan kaynaklar
https://www.tutorialspoint.com/design_pattern/factory_pattern.htm https://medium.com/nsistanbul/design-patterns-factory-method-pattern-615457e9560b

--

--

ismail kaşan
ismail kaşan

Written by ismail kaşan

I am a full stack developer since 2016.

Responses (1)