單例模式

單例模式:永遠用一個對象的實例

使用時遵循規則 :創建的對象跟對象之間內部封裝的值是一模一樣的,則沒必要創建多個對象

兩種使用方式:

1. low版單例: 缺點調用方式變化 Foo().get_instance()

class Foo(object):
    instance = None 
    def _init_(self):
       pass
    @classmethod
    def get_instance(cls):
        if 
            return Foo.instance
        else:
            Foo.instance = Foo()
            return Foo.instance                          

2. 高級版: 基於 __new__ 方法實現的單例模式

class Foo(object):
    __instance = None

    def __init__(self):
        pass
    
    def __new__(cls,*args,**kwargs):
        if not cls.__instance:
      obj = object.__new__(cls,*args,**kwargs)
      cls.__instance = obj
      return cls.__instance

  

 

点赞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *