python設計模式之單例模式

定義:保證一個類只有一個實例,並提供一個訪問它的全局訪問點。it

適用場景:當一個類只能有一個實例而客戶能夠從一個衆所周知的訪問點訪問它時。class

優勢:對惟一實例的受控訪問,至關於全局變量,可是又能夠防止此變量被篡改。變量

代碼實現:object

class Singleton(object):

    # 若是該類已經有了一個實例則直接返回,不然建立一個全局惟一的實例
    def __new__(cls, *args, **kwargs):

        if not hasattr(cls, '_instance'):
            cls._instance = super(Singleton, cls).__new__(cls)

        return cls._instance


class MyClass(Singleton):

    def __init__(self, name):
        if name:
            self.name = name

if __name__ == '__main__':
    mc = MyClass('mesie')
    print(mc.name)
相關文章
相關標籤/搜索