Tasarım Örüntüleri (Design Patterns)

Tasarım Örüntüleri (Design Patterns)
Tasarım Örüntüleri (Design Patterns)

Kod geliştirdiğimiz her an hatırlamamız gereken tasarım örüntülerinin neler olduğuna biraz daha yakından bakalım.

Öncelikle tasarım örüntüleri ne işe yarıyor? Tasarım örüntüleri insanların projelerinde sık sık karşılaştıkları problemler çözüm olarak getirdikleri Problem-Çözüm ilişkileridir.

Tasarım örüntülerini;

Kodun daha esnek olabilmesini sağlamak
Kodun tekrar tekrar kullanılabilmesi
Sonradan yapılacak değişikliklere karşı kodun fazla etkilenmemesi amacıyla geliştirilmiştir.
Tasarım örüntülerine girmeden önce Nesne tabanlı programlamada (Object Oriented Programming) soyutlama(Abstraction) kavramını iyi anlamak gerekir. Objelerimizi nasıl soyutlarız. Nasıl kod geliştirmeliyiz ki High Cohesion, Low Coupling yapabilelim. Birbiri ile ilişkili özellikleri ve fonksiyonları bir araya toplarken , bir yandanda birbirinden farklı olan kod birimlerine birbirlerine bağımlı hale getirmeden nasıl birbirleri ile iletişim kurmalarını sağlayabiliriz.

Bu konuda biraz daha ilerletirsek Dependency Injection ne demek? Bir bileşeni nasıl geliştirmeliyiz ki bu bileşen sadece kendi bileşen paketi içerisinde kendisi ile ilgili mantıkları bilsin. Daha sonra projemizde çok fazla bileşen ve ilişkisi olduğu zaman bu bağımlılıkları nasıl yönetebiliriz? Daha sonra bu örüntülerin en iyilerinin bazı kütüphanelerde ve framework toplandığını görebilirsiniz. Örneğin yukarıda bahsettiğim Dependency Injection bir gerçekleştirimi olarak Spring IOC(Inversion Of Control) gibi kütüphaneler bunlara örnektir.

Tasarım Örüntü (Design Pattern) kitabı bu örüntülerini 3 kategori altında inceler. Creational Patterns(Yaratımsal Örüntüler), Structural Patterns(Yapısal Örüntüler), Behavioral Patterns(Davranışsal Örüntüler). Bu örüntüleri kullandıkça bu ayrışmayı neden bu şekilde yaptıklarını daha iyi anlayacaksınız.