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)
相关文章
相关标签/搜索