tasarım desenleri logo

Singleton(Tek Nesne) Tasarım Deseni

Merhaba arkadaşlar, daha önce tasarım desenlerine kabaca bir giriş yapmıştık. Bu yazımda ise yaratıcı tasarım desenlerinden Singleton (Tek Nesne) tasarım desenine bakacağız.

Tanım olarak Tek Nesne; bir sınıfın yalnızca bir örneğinin oluşturulmasını sağlayan yaratıcı bir tasarım modelidir.

Genellikle şu durumlarda kullanılır:

  • Paylaşılan bir kaynağa erişmek istiyorsanız,
  • Programınız içerisinde bir çok kısımda bir kaynağa erişim isteniyorsa,
  • Tek bir nesne örneklendirmek istendiğinde kullanılır.

Bunun en iyi örneklerinden birisi bazı bilgileri günlüğe kaydetmek için sistemin her bölümünde kullanılan bir Kaydedici’dir.

Örnek olarak ise sosyal medya uygulaması yapıyorsanız, kullanıcının her etkinliğini kayıt etmek durumundasınız.

Her bir etkinlik günlüğü için tekrar tekrar yeni bir Oturum örneği başlatmak yerine, tek bir örneğe sahip olup gerektiğinde bu örneğe erişmek daha iyi olur.

Yani farklı bir deyişle; gerektiğinde kullanıcı oturumlarını, yorumları, yayınları ve beğenileri günlüğe kaydetmek için aynı Oturum örneğini kullanmak daha iyidir.

Şimdi ise Python ile farklı eylemleri(etkinlikleri) kaydetmekle sorumlu Oturum sınıfını oluşturalım.

Python’da Tek Nesne yaklaşımını oluşturmanın en popüler yolu metaclass oluşturmaktır.

Metaclass bir sınıfın sınıfıdır. Şimdi kod örneğimize geçelim.

Bir de C#’da benim örneğimi inceleyelim.

TekNesneDeneme adıyla bir proje oluşturdum. Açılan projeye tekNesne adında bir sınıf ekledim. Singleton tasarım deseninin daha anlaşılır sade kodları aşağıdaki gibidir.

Program sınıfı içerisine de aşağıdaki kodları yazıyoruz.

Burada tekNesne sınıfının içerisinden kullanıcı adı ve şifreyi alıyoruz.

Umarım anlaşılır olmuştur.

Bir cevap yazın