Bazı şartlar altında bir sınıftan sadece bir nesnenin oluşturulması ve oluşturulan bu nesnenin
tüm sistemde kullanılması gerekebilir. Örneğin bilgibankası için bir connection pool
(bilgibankası bağlantı havuzu) sadece bir defa oluşturulmalı ve kullanılmalıdır. Bu durumda
Singleton tasarım şablonu kullanılarak, bir sınıftan sadece bir nesnenin oluşturulması
sağlanabilir.
Bu yazıyı PDF olarak edinebilirsiniz.
Singleton (Tekillik) Tasarım Şablonu (136,1 KiB, 16.929 yükleme)
Merhaba,
Bir hususu eklemek istedim. Java 5’ten önce bahsettiğiniz şekilde yapılan “double checked locking”in hatalı çalıştığını bu yüzden Java 5 öncesi sürümlerde Singleton nesnesinin lazy olarak değil de sınıfın static olgusu ayağa kaldırılırken yaratılması gerektiğini söylüyorlar:
private static SingletonObject instance = new SingletonObject();
Java 5 ile gelen “volatile” anahtar sözcüğü ile “double checked locking” kullanılmalı. Ayrıntı bilgi için:
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
Kolay gelsin.
Hocam yazdıklarınız için teşekkür ederim.2008 yılında yazdığınız bir yazıdan bugün konuyu daha ayrıntılı öğrenme şansı elde ettim.Tekrar teşekkür ederim .