HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Singleton Tasarım Modeli Nedir?
Singleton kalıbı daha basit tasarım kalıplarından biridir. Singleton tasarım desenini kullanan bir sınıfın kendi başına yönettiği tek bir örneği vardır. Bu sınıf, başka herhangi bir sınıfın kendisinin bir örneğini oluşturmasını engeller. Bir singleton sınıf ayrıca oluşturduğu örneğe tek bir global erişim noktası sağlar. Dolayısıyla, bir singleton sınıfın örneğini isteyen herhangi bir sınıfın, bu örneğe tek erişim noktası üzerinden erişmesi gerekir.
Java'nın nesne yönelimli programlama için mükemmel desteği, singleton tasarım modelini kullanmayı kolaylaştırır. Java'da singleton modelini uygulamanın birçok yolu vardır; eager ve lazy yaklaşımları yaygın varyasyonlardır. Bu yaklaşımların her birinin kendine özgü avantajları ve dezavantajları vardır. Bu nedenle, kullanmayı seçtiğiniz yöntem uygulamanızın nasıl çalışacağına bağlı olmalıdır.
Java'nın nesne yönelimli programlama için mükemmel desteği, singleton tasarım modelini kullanmayı kolaylaştırır. Java'da singleton modelini uygulamanın birçok yolu vardır; eager ve lazy yaklaşımları yaygın varyasyonlardır. Bu yaklaşımların her birinin kendine özgü avantajları ve dezavantajları vardır. Bu nedenle, kullanmayı seçtiğiniz yöntem uygulamanızın nasıl çalışacağına bağlı olmalıdır.
Singleton modelini eager yaklaşımıyla uygulamak,
sınıfın yüklendiğinde kendisinin yeni bir örneğini oluşturması anlamına gelir.
sınıfın yüklendiğinde kendisinin yeni bir örneğini oluşturması anlamına gelir.
Kod:
public class EagerSingleton {
private static EagerSingleton instance = new EagerSingleton();
private EagerSingleton() {}
public static EagerSingleton getInstance() {
return instance;
}
}
EagerSingleton Java sınıfı yüklenirken kendisinin yeni bir örneğini oluşturur. Bu örneği, yalnızca singleton sınıfı içinden erişilebilen özel statik örnek değişkenine atar. Örnek değişkenine dışarıdan erişimin tek noktası getInstance() yöntemidir. Bu yöntem, sınıfın önceden oluşturulmuş örneğini döndürür.
Bu yaklaşım, singleton modelinin en büyük zorluklarından biri olan çoklu iş parçacığı sorununu önlediği için harikadır. Herhangi bir yeni iş parçacığı örnek değişkenine erişmeden önce kendisinin yeni bir örneğini oluşturarak çoklu iş parçacığı sorununu çözer. Bu, her iş parçacığının yalnızca aynı örneğe erişebileceğini garanti eder.
Bu yaklaşım, singleton modelinin en büyük zorluklarından biri olan çoklu iş parçacığı sorununu önlediği için harikadır. Herhangi bir yeni iş parçacığı örnek değişkenine erişmeden önce kendisinin yeni bir örneğini oluşturarak çoklu iş parçacığı sorununu çözer. Bu, her iş parçacığının yalnızca aynı örneğe erişebileceğini garanti eder.
Ancak, eager yaklaşımı yalnızca uygulamanız çalışmaya başladığında singleton sınıfının bir örneğini kullanacaksa pratiktir. Aksi takdirde, uygulamanızın ihtiyacı olmadan bir nesne oluşturarak kaynakları gereksiz yere kullanmış olursunuz. Tembel yaklaşım, istekli yaklaşım sorununa bir çözümdür. Yalnızca programınız ihtiyaç duyduğunda bir singleton sınıfının yeni bir örneğini oluşturmanıza olanak tanır.
Kod:
public class LazySingleton {
private volatile static LazySingleton instance;
private LazySingleton() {}
public static LazySingleton getInstance() {
if (instance == null) {
synchronized (LazySingleton.class) {
if (instance == null) {
instance = new LazySingleton();
}
}
}
return instance;
}
}
Bu, iki iş parçacığının aynı anda örnek değişkene erişmesini engeller. Ancak synchronized pahalı olduğundan uygulama bunu yalnızca bir kez, getInstance() işlevini ilk çağırdığında kullanır.Singleton kalıbı, iletişim kutuları oluşturmak, kayıt defteri ayarlarını işlemek veya iş parçacığı havuzlarını yönetmek gibi birçok senaryoda kullanışlıdır. Singleton modelinin bir başka yaygın kullanımı da veritabanı bağlantılarını yöneten merkezi bir sınıf oluşturmaktır.
En Çok Reaksiyon Alan Mesajlar
Paylaşım için teşekkürler.
Paylaşım için Teşekkürler
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 32
- Cevaplar
- 2
- Görüntüleme
- 78
- Cevaplar
- 0
- Görüntüleme
- 23
- Cevaplar
- 2
- Görüntüleme
- 47
- Cevaplar
- 2
- Görüntüleme
- 41

