Design Patterns / Tasarım Desenleri nedir?

Tasarım desenleri, design patterns, tasarım kalıpları vb. bir çok farklı isimle duyduğumuz ve aslında birden fazla desenden oluşan bu konsepti çok detaylı inceleyeceğimiz bir yazı dizisine başlıyoruz.


Design Patterns / Tasarım Desenleri nedir?

Bu içerik ağırlıklı olarak refactoring.guru sitesindeki içeriğin tercümesi ve derlenmesinden oluşturulmuştur. Başka kaynaklardan da ek bilgiler içerebilir.

Tasarım Desenleri nedir?

Tasarım Desenleri (veya bir diğer kullanımla tasarım kalıpları) yazılımda sık karşılaşılan problemler için oluşturulmuş çözümlerdir. Kodunuz içerisinde sıklıkla karşılaşılan sorunları çözmek için özelleştirerek kullanabileceğiniz önceden hazırlanmış planlar olarak düşünebilirsiniz. Tasarım kalıpları bir fonksiyon, ya da sınıf gibi hazır olarak bulup kodunuza ekleyebileceğiniz parçalar değil, prorblem çözümü için kullanılan genel konseptlerdir.

Her ikiside bilinen problemleri çözmek için üretilmiş tipik çözümler olduğundan tasarım desenleri genelde algoritmalarla karıştırılır. Algoritmalar bir hedefe ulaşabilecek net bir eylemler kümesi tanımlarken, tasarım desenleri bir çözümün daha üst düzey bir tanımıdır. Aynı desenin iki farklı programa uygulanan kodu farklı olabilir.

Bir algoritmayı yemek tarifine benzetebiliriz. Kullanılacak malzemeler ve takip edilecek adımlar net olarak bellidir. Öte yandan bir tasarım kalıbı daha çok bir plan gibidir, sonuçta bekleneni ve özellikleri görürsünüz ama uygulama sırası ve şekli biraz daha size bağlıdır.

Tasarım deseni çeşitleri nelerdir?

Tasarım desenleri karmaşıklığı, detay düzeyleri ve tasarlanan sistemin ne kadarına uygulanabileceğine bağlı olarak değişiklik gösterirler.

En basit ve alt düzey kalıplar deyimler ‘idoms’ olarak adlandırılır. Bunlar genellikle belirli bir programla diline özeldir.

Daha evrensel ve üst seviye olan desenler ise mimari desenler (‘architectural patterns’) olarak adlandırılır. Bu desenler teorik olarak herhangi bir programlama diline uygulanabilir. Diğer desenlerin aksine uygulamanın tamamının yapısını tasarlamaya olanak sağlarlar.

Kullanım Amaçlarına Göre Tasarım Desenleri / Design Patterns

Yazının devamında tasrım desenleri isimlerini ingilizce olarak kullanacağım. Fazlasıyla teknik terimler olduğu için Türkçe karşılıkları anlaşılır/mantıklı olmuyor.

Yaratımsal Desenler (Creational Patterns)

Yaratımsal Desenler (Creational Patterns) kodun esnekliğini ve tekrar kullanılabilirliğini arttıran nesne oluşturma mekanizmaları sunarlar.

Yapısal Desenler (Structural Patterns)

Yapısal Desenler (Structural Patterns) yapının esnekliği ve verimliliğini bozmadan nesneler ve sınıfların daha büyük yapılar oluşturmak için nasıl bir araya getirileceğini tanımlarlar.

Davranışsal Desenler (Behavioral Patterns)

Davranışsal Desenler (Behavioral Patterns) nesneler arasında etkin bir iletişim ve sorumluluk atamasının yapılmasını sağlarlar.

Bir soru, öneri ya da yorumunuz mu var?

Evren Bal

Ben Evren BAL

1996'dan beri ‘Internet canlısıyım!’

Evren Bal Hakkında daha fazla bilgi.

Tanışmak isterseniz hemen sosyal medyadan iletişime geçebilirsiniz.

Bana Ulaşın

Bana Ulaşın

  • Bir sorunuz mu var?
  • Yazıda bir hata mı farkettiniz?
  • Sayfa ile ilgili bir öneriniz mi var?
  • Yazmamı önereceğiniz bir konu mu var?

Lütfen iletişim formunu kullanarak veya sosyal medya hesaplarımdan bana ulaşın.

Digital Ocean Logo

VPS sunucusu denemek ister misiniz?

Digital Ocean'a referans bağlantımdan kayıt olarak yeni oluşturacağınız hesabınızı 60 gün geçerli 100$ kredi ile açabilirsiniz. Bu miktar yüksek performanslı VPS'leri bile denemeniz için yeterlidir.

Yapacağınız onca kurulumun boşa gitmemesi için benim tavsiyem uzun vadede kullanabileceğiniz özellik ve maliyetlerde bir sunucu oluşturmanızdır.

Ücretsiz 100$ kredi bağlantısı

60 günlük denemeniz sonunda eğer devam etmek istemezseniz hiç bir ücret ödemeyeceksiniz. Hizmeti kullanmaya devam etmek isterseniz harcamanız 25$'a ulaştığında benim hesabıma da 25$ kredi yüklenecektir.

Diğer bir deyişle, siz 100$ ücretsiz krediyi her halükarda kazanırken, daha sonra ücretli devam etmeye karar verirseniz ben de 25$ kredi kazanacağım.

Copyright © 2022 - Evren BAL