Posts Tagged ‘design patterns’

Factory Design Pattern

Nesne yönelimli programlama dilleri ile geliştirilen uygulamaların tasarımı, uygulamanın bakım ve geliştirme süreçlerini etkileyen çok önemli bir aşamadır.

Geliştirilecek uygulamanın, daha sonra yazılımın diğer modüllerinden bağımsız olarak genişletilebilir, bakımının yapılabilir ve varolan kodların tekrar kullanılabilir olması yazılım mühendisliğinin ilgi alanlarından biridir.

Factory Design Pattern (Tasarım Şablonu) ile amaç, uygun nesneleri uygulamaya döndürmektir. Şablonun temel işlevi, adından da belli olduğu gibi sınıfların örneklerini üretmektir.

Bu tanımlamayı biraz daha açarsak, bir sınıfdan ya da interfaceden türetilen n tane alt sınıf varsa, bu altsınıfların herbiri birbirinden farklı birtakım özel işlemleri gerçekleştirmek için geliştirilmiştir. Fakat bu n tane altsınıfın herbiri, türetildiği üst sınıfın sağladığı methodları kalıtım ile devralır ya da interfacein sunduğu methodları uygulamak zorundadır.

Sonuçta bu altsınıflar, türetildiği üst sınıf ya da interfacein tasarlanış felsefesi ile alakalı işlemler gerçekleştirir. Factory tasarım şablonu ile amaçlanan, bu altsınıfları, sınıfların detayından bağımsız olarak uygulamaya döndürmektir.

(daha fazla…)

Singleton Design Pattern

Daha önce şurada derinlemesine açıklamaya çalıştığım design patterns (tasarım şablonları), nesne yönelimli yazılım geliştirme sürecinde ortaya çıkan pekçok farklı probleme akıllıca çözümler getirmek için geliştirilmiş yazılım mimarileridir.

Tamamen nesne yönelimli programlama yaklaşımını destekleyen Java ile de uygulama geliştirirken, pekçok tasarım şablonu kullanarak, ortaya çıkabilecek problemleri tasarım aşamasında minimuma indirebiliyoruz.

Java ile uygulama geliştirirken kullanılan en popüler tasarım şablonlarından biri de Singleton tasarım şablonudur. Singleton tasarım şablonunun getirdiği çözüm basitçe, şablon çerçevesinde tasarlanacak sınıfların sadece tek bir örneğinin (instance) oluşturulabilmesidir. Bu sayede nesnenin gereksiz birçok kopyasının oluşturulmasının önüne geçilir ve herhangi bir durumda nesneye ihtiyaç duyulduğunda o nesnenin daha önceden oluşturulan örneği kullanılır.

(daha fazla…)

Tasarım Şablonları – Design Patterns

Yazılım geliştirme, kesinlikle basit bir iş değildir.

Günümüzde (özellikle ülkemizde), birkaç programlama dilinin sözdizimini (syntax) öğrenen birçok kimse paldır küldür uygulama geliştirmeye çalışıyor (Amacım mektepli-alaylı çatışmasını alevlendirmek kesinlikle değil, konu da zaten bununla alakalı değil). Küçük bir uygulama geliştiriliyor ise pek bir problem yaşanmayacağı muhakkak. Ancak, onbinlerce ve daha fazla satır koddan oluşan orta ölçekli yazılımların, gereksinimler belirlenmeden, analiz ve planlama yapılmadan geliştirilmeye başlanması gereksiz işlerden arındırılmamış, bakım ve güncelleme süreçleri programcılar için bir kabus haline gelen ve uygulamayı geliştiren yazılım ekibinin birbirileri ile olan iletişiminin kopmasına yol açan projelere dönüşmesi kaçınılmazdır. Üstelik bir süre sonra yazılımınıza yeni özellikler eklemeye kalkıştığınızda ortaya çıkabilecek sorunlar zaman kaybı yanında maliyeti de etkilemektedir. “Spaghetti code (arapsaçı kod)” adı verilen kodlama tekniği(!) buna en güzel örnektir (daha fazla…)