Wednesday, September 18, 2013

Singleton (Tekil Nesne) Tasarım Deseni

Merhabalar,

Bugün en bilinen ve ihtiyaç duyulan 'Tasarım Desenleri'nden biri olan Singleton'u inceleyeceğiz/öğreneceğiz.

Öncelikle, Singleton için Türkçye'ye iyi bir karşılık arayışdaydım. Biraz Googling'ten sonra bu desene kendi çapımda 'Issız Nesne' olarak adlandırmayı uygun gördüm. Fark ettiğiniz üzere bu karşılık Çağan Irmak imzalı 'Issız Adam' filminden gelmekte. Belki de Singleton için daha fazla açıklamaya gerek kalmamıştır, bu benzetmeden sonra. ;P

Olay: Singleton 'Tasarım Deseni' ile hazırladığımız sınıftan sadece bir tane 'örnek' (instance) oluşturmamızı, ve buna her yerden erişebilmemizi sağlar.
Neden: Tamamiyle OOP tabanlı bir proje üzerinde çalıştığınızı düşünün. Bu projeyi elbetteki bazı yönetici sınıflarınız da olacaktır. Örnek vermek gerekirse, uygulamanızda tek bir Database sınıfının varlığı kaçınılmazdır. İşte bu noktada bir uygulamada Database sınıfından kaç tane 'örnek'e (instance) ihtiyacımız olacaktır? Cevap sırıtmakta, sadece bir!

PHP ile Singleton çalışması:

Loading ....

PHP5.4 ile birlikte "traits" denen bir özellik eklendi. Bu traitler dediğimiz özellik, belirteceğimiz property (özellik) ve methodlarının (metot) traiti kullanacağımız sınafa göre şekillenmesi amacıyla eklendi. Aslında bu ayrı bir yazı konusu olurdu. Ancak basit anlamda anlatmak için yeterli cümleleri kurduğuma inanıyorum. Şimdi yapacağımız şey ise traitleri kullanarak Singleton tasarım desenini tüm sınıflarımızda kullanabilmek. Bu sayede DRY (Don't Repeat Yourself) ilkesini de gerçekleştirmiş olacağız. Kalıtım'ın (Inheritance) da dibine vurduğumuz söylenebilir.
Loading ....

JavaScript ile Singleton çalışması:
Loading ....

Java ile Singleton çalışması:
Loading ....

Ruby ile Singleton çalışması:
Loading ....

No comments:

Post a Comment