Python 設計模式 - 單例



此模式限制類的一個物件例項化。它是一種建立模式,只涉及一個類建立方法和指定的物件。

它提供了一個全域性訪問點來建立例項。

Singleton Pattern

如何實現單例類?

以下程式演示了單例類的實現,它列印多次建立的例項。

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

輸出

上述程式生成以下輸出 -

Implementation of Singleton

建立的例項數量相同,並且輸出中列出的物件沒有差異。

廣告