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 ....