Yegâne (Singleton) Tasarım Şablonu

Yegâne (Singleton) tasarım şablonu,  GoF ‘un(Gang Of Four) oluşturucu tasarım şablonlarından ilkidir. Bu şablonun amacı hazırlayacağınız sınıftan sadece bir nesne oluşmasını sağlamaktır. Bu sayede nesnenin kopyalanmasını yada yeni bir tane oluşturmasını engeller ve nesneye ihtiyaç duyulduğunda  önceden oluşturulan nesneyi çağırır. Singleton tasarım şablonu, diğer tasarım şablonlarında da (Abstract Factory, Builder, Prototype, vs.) kullanılmaktadır. Core java sınıflarında kullanılır. Örneğin java.lang.Runtime, java.awt.Desktop

Bu şablonu uygulamak için yapılması gerekenler

  • Sınıfın birden fazla nesne oluşturmasını engellemek. (private constructor ile)
  • Sınıf içerisinde nesne oluşturan static bir sınıf değişkeni (private static variable)
  • Sınıf içerisinde oluşan nesneyi döndüren public static bir metot. Bu işte dış dünyaya açılış noktasıdır.

Uygulama Çeşitleri

Singleton tasarım şablonunun çeşitli uygulama teknikleri vardır. Mesela Eager initialization, Singleton sınıfının nesnesi tam olarak class loading anında oluşturulur. Lazy initialization’ da nesne elde edilmek istenildiğinde nesne oluşturulur. Static block initialization’ da eager initialization’a benzerdir. Ancak, nesne oluşturulurken istisna oluşabilme durumlarında statik bloğun içinde oluşturulur. Diğer uygulama teknikleri içinde örnekler daha sonra yazacağım.

1. Eager Initialization

2. Static block initialization

3. Lazy Initialization

4. Thread Safe Singleton
5. Bill Pugh Singleton Implementation
6. Using Reflection to destroy Singleton Pattern
8. Enum Singleton
9. Serialization and Singleton

Beğenebileceğiniz Diğer Yazılar

2 Yorum

  1. 12 Ekim 2018

    […] Yegâne Şablonu (Singleton Pattern) […]

  2. 1 Aralık 2018

    […] tip olan enum’un aslında Singleton sınıftan farkı olmadığını gördünüz. Kod içerisinde önemli olan yerleri koyu renkle […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir