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.891 yükleme)
Konuyla İlgili Kitaplar
Tasarım Şablonları (Design Patterns) kategorisinden son yazılar
- Decorator Tasarım Şablonu - July 24th, 2010
- Java Enum ile Singleton Tasarım Şablonu - February 2nd, 2010
- Intercepting Filter Tasarım Şablonu - December 9th, 2009
- Builder Tasarım Şablonu - November 17th, 2009
- Service Locator Tasarım Şablonu - October 30th, 2009
- Business Delegate Tasarım Şablonu - October 30th, 2009
- Chain of Responsibility Tasarım Şablonu - October 9th, 2009
- Front Controller Tasarım Şablonu - October 9th, 2009
- Flyweight (Sinek Siklet) Tasarım Şablonu - October 9th, 2009
- Proxy (Vekil) Tasarım Şablonu - October 8th, 2009
Mustafa Daşgın
27 Kasım 2008Merhaba,
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.
Gökhan Korkmaz
02 Eylül 2017Hocam 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 .