Design Patterns - Singleton
Bir nesneden sadece 1 tane üretilmesini sağlayan tasarım kalıbıdır.2 adet kuralı vardır
- Başka yerde üretilmediğinden emin ol.
- Tek bir noktadan her yere erişim ver.
Tek kullanıcılı bir otomasyon yaptığımızı düşünelim.Tek kullanıcı olduğundan profili tek yapar ve tüm para değerlerini orada tutmak isteyebiliriz.(Sadece bir örnek)
Öncelikle başka yerde üretilip üretilmemesini kontrol etmek için yapılandırıcısını dışarıya kapalı hale getiririz.
class Profil
{
private static Profil profil = new Profil();
//Yapılandırıcı private
private Profil() { }
}
Fakat bu şekilde bırakırsak bu nesne sadece içeride üretilebilir ve oda hiçbir işimize yaramaz.Bu bakımdan bu koda static bir erişim fonksiyonu ekliyoruz.
class Profil
{
private static Profil profil = new Profil();
//Yapılandırıcı private
private Profil() { }
//üretim fonksiyonu
public static Profil getProfil()
{
return profil;
}
}
Artık bu fonksiyona ulaşmak için yapılacak tek şey
Profil a=Profil.getProfil(); deyip a ya profildeki nesne adresini atamak.Şuanda tüm şartları sağlıyor hem 1 tane üretiliyor hemde herkez aynı nesneyi kullanıyor.