Python Tasarım Desenleri - Singleton

Bu desen, bir sınıfın somutlaştırılmasını tek bir nesneyle sınırlar. Bir tür yaratımsal modeldir ve metotları ve belirli nesneleri oluşturmak için yalnızca bir sınıf içerir.

Oluşturulan örneğe genel bir erişim noktası sağlar.

Bir singleton sınıfı nasıl uygulanır?

Aşağıdaki program, birden çok kez oluşturulan örnekleri yazdırdığı singleton sınıfının uygulamasını gösterir.

class Singleton:
   __instance = None
   @staticmethod 
   def getInstance():
      """ Static access method. """
      if Singleton.__instance == None:
         Singleton()
      return Singleton.__instance
   def __init__(self):
      """ Virtually private constructor. """
      if Singleton.__instance != None:
         raise Exception("This class is a singleton!")
      else:
         Singleton.__instance = self
s = Singleton()
print s

s = Singleton.getInstance()
print s

s = Singleton.getInstance()
print s

Çıktı

Yukarıdaki program aşağıdaki çıktıyı üretir -

Oluşturulan örneklerin sayısı aynıdır ve çıktıda listelenen nesnelerde hiçbir fark yoktur.