单例模式

python学习网 2019-03-01 13:54:02

单例模式:永远用一个对象的实例

使用时遵循规则 :创建的对象跟对象之间内部封装的值是一模一样的,则没必要创建多个对象

两种使用方式:

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

  

 

阅读(2278) 评论(0)