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.