Dizayn Paternler ve Gang Of Four Paternleri


Bu makale ile design pattern’lerin (dizayn patern) ve Gang of Four dizayn paternlerinin türleri hakkında kısa bir fikir sağlanması amaçlanıyor. Bu paternler, iyi bir yazılım uygulaması mimarisinin temelini oluşturan en iyi uygulamalar olarak düşünülür.

Dizayn Patern nedir?

Yazılım geliştirme, tonlarca kod yazmayı içerir. Sonunda elinizde bir ürün bulacaksınız. Ancak kod düzgün planlanmış bir şekilde yazılmıyorsa, mevcut kodda tek bir gereklilik değişikliği bile uygulamanızı tersine döndürebilir ve mevcut kodda çok fazla yeniden çalışma gerektirebilir. Geliştirici, bu tür gereksinim değişikliklerini karşılamak ve geliştirme çabalarının israfından ve tabii ki zaman kaybından kaçınmak için dizayn patern’ler (tasarım kalıpları/desenleri) tanıtıldı. Tasarım desenleri, temiz, yeniden kullanılabilir, ayrılmış ve iyi planlanmış bir kod yazarak yardımcı olur.

Gang of Four Dizayn Paternleri nedir?

.NET’te, genellikle Gang Of Four adında bir grup olarak adlandırılan dört kişilik grup tarafından tanımlanan Gang of Four veya Go4 dizayn patten’leridir. Bu 4 kişilik yazarın kitabının adı “Yeniden Kullanılabilir Nesne Odaklı Yazılım Öğeleri: Design Patterns” idi. İyi bir kalitede kod yazmanın temelini oluşturan 23 tasarım kalıbını açıkladılar.

Gang Of Four Dizayn Paternlerinin türleri:

Bu paternler, çözdüğü amaca göre 3 ana kategoriye ayrılmıştır. Bunlar aşağıdaki gibi kategorize edilmiştir:

1. Yapısal paternler:

Bu tip paternler, sınıfların temel yapısını, uygulamada yani birbirleriyle nasıl ilişkili olduğunu tanımlar. Gerçek bir dünya örneği vermek gerekirse, İK, iş geliştirme, teknik departmanlar gibi farklı departmanlara sahip bir kuruluş örnek verilebilir. Yani burada organizasyon bölümlerin organizasyon gereksinimlerine göre mümkün olan en verimli şekilde birbirlerine ve birbirlerine bağlı olarak bölünmüştür. Teknik olarak, buradaki bölümler uygulama kodunda sınıf rolünü oynuyor ve bu sınıflar bir şekilde birbiriyle bağlantılı olabilir.

Aşağıda bu kategori altında tanımlanan kalıplar verilmiştir:
1. Adapter
2. Bridge
3. Composite
4. Decorator Pattern
5. Facade
6. Flyweight
7. Proxy

2. Yaratılış paternleri:

Bu tür paternler, sistemdeki sınıf nesnelerinin nasıl oluşturulacağını açıklar. Gerçek örneğimiz açısından, yeni üyelerin organizasyona nasıl işe alınacağına ve organizasyon gereksinimine göre bölümlere eklemelerine karar verir. Teknik olarak, istemci kodunun gerekliliklerine göre sınıfların nesnelerinin oluşturulmasıyla eşdeğerdir.
Bu kategorideki paternler aşağıdadır:
1. Abstract Factory
2. Builder
3. Factory Method
4. Prototype
5. Singleton

3. Davranış paternleri:

Bu tip paternler, sınıflarda ve nesnelerin birbirleriyle nasıl etkileşimde bulunduklarını sistemde açıklar. Gerçek dünyadaki örneğimizde, farklı bölümlerin / üyelerin birbirleriyle etkileşim kurma biçimi olarak tanımlanabilir. Örneğimizde, bu bölümler ve üyeler, sistemde birbirleriyle etkileşim kuran sınıflar ve nesnelerdir. Dolayısıyla, önceden tanımlanmış bir süreçle ya da gereksinimler uyarınca doğrudan etkileşim halinde olabilirler.

Aşağıda bu kategori altında tanımlanan kalıplar verilmiştir:
1. Chain of Responsibility
2. Observer
3. State
4. Strategy
5. Mediator
6. Command
7. Interpreter
8. Visitor
9. Iterator
10. Memento
11. Template

Sonuç

Bu 23 adet Gang Of Four Dizayn Paternleri haricinde Head First, Enterprise, Multi-Tier Dizayn Pattern’leri, Repository, Unit Of Work, Active Record, CQRS, Model View Controller, Model View Presenter, Model View ViewModel gibi önemli ve yazılım geliştiriminde sıklıkla kullanabileceğiniz başka dizayn paternler de bulunmaktadır. Bunları da gelecek makalelerimizde açıklamak umuduyla. Mutlu kodlamalar…

Reklamlar
Posted in Genel

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s