什么是单例模式?

# Python设计模式 单例模式-LMLPHP

为什么需要单例模式?

通过单例设计模式, 你可以在不定义全局变量的情况下,在程序的任何地方访问你所指定的对象,单例模式所提供的功能和全局变量是一样的, 但是通过单例模式设计, 你就可以在无需牺牲代码可读性和安全性的前提下完成和全局变量完全一样的功能. 单例模式吸收了全局变量的优点摒弃了全局变量的缺点,是替代可恶全局变量不二的选择.

为什么需要单例模式? 本质上是因为人们需要全局变量,需要一个更加好用更加安全的全局变量, 单例模式的出现解决了全局变量的现有问题, 所以人们才需要单例模式

单例模式和全局变量的区别?

单例模式如何实现?

基于装饰器的实现

def singleton(cls):
    instances = {}
    def getinstance(*args,**kwargs):
        if cls not in instances:
            instances[cls] = cls(*args,**kwargs)
        return instances[cls]
    return getinstance

@singleton
class ClassA:
    pass

@singleton
class ClassB:
    pass

class ClassC:
    pass

aa=ClassA()
aaa=ClassA()

bb=ClassB()
bbb=ClassB()

cc=ClassC()
ccc=ClassC()

如果感觉本篇内容还不错,微信的朋友请点个在看和赞,其他平台的朋友可以(近距离)扫描下方的二维码关注我的公众号 早睡蟒更多优质原创无广告内容等你来看.

# Python设计模式 单例模式-LMLPHP

07-05 13:46