Etiketler

,


Tanım
Bir sınıfın sadece bir tane örneği (instance) olmasını ve o örneğe her yerden erişimi garanti eder.

Bu desene iştirak eden sınıf ve nesneler
• Singleton
o İstemciye tek bir örneğe erişmesine izin veren bir sınıf fonksiyonu tanımlar.
o Tek bir örnek yaratmaktan ve onunla işlem yapmaktan sorumludur.

Singleton desenini gösteren aşağıdaki yapısal(structural) kod, tek bir singleton örneğinin yaratılacağını temin eder.

Uygulama içersinde dikkat edilmesi gereken noktalar.
1. Statik bir örnek tanımlanmış olmalı. (private static Singleton instance;)
2. Yapıcı private yada protected olmalı. Çünkü diğer katmanlardan yapıcıya direk erişilmesi ve new anahtar sözcüğü ile kontrolsuz olarak yaratılmasına izin verilmemeli.
3. public static olarak tanımlanmış bir fonksiyon (property) olmalı. Katmanlardan yaratılmış singleton örneğe bu property ile ulaşılmalı.
4. Çok kanallı (Mutlitread) uygulamalarda lock ( ) komutu ile o anda sınıfı tek bir kanalın kullanması garanti edilir. Güvenli işlemi sağlamak için belirtilen kod bolğunu kitler.