一种设计模式--单例模式

金沙官网线上,单例模式

单例模式,是一种减轻内存负担的设计模式。如果创建的对象在以前创建过,则直接指向该内存地址,而不是再开辟一块内存地址。

eg:

class Foo:
    __v=None
    @classmethod
    def get_instancd(cls):
        if cls.__v:
            return cls.__v
        else:
            cls.__v=Foo()
            return cls.__v

foo1=Foo.get_instancd()

print (foo1)

foo2=Foo.get_instancd()

print (foo2)

foo3=Foo.get_instancd()

print (foo3)
#运行结果
<__main__.Foo object at 0x00000175D94B09B0>
<__main__.Foo object at 0x00000175D94B09B0>
<__main__.Foo object at 0x00000175D94B09B0>

 

由以上运行结果做可知,分别用foo1,foo2,foo3实例化类Foo,而在内存中只创建了一块内存空间,其他的均指向了该内内存空间。

单例模式

单例模式,是一种减轻内存负担的设计模式。如果创建的对象在以前创建过,则直接指向该内存地址,而不是再开辟一块内存地址。

eg:

class Foo:
    __v=None
    @classmethod
    def get_instancd(cls):
        if cls.__v:
            return cls.__v
        else:
            cls.__v=Foo()
            return cls.__v

foo1=Foo.get_instancd()

print (foo1)

foo2=Foo.get_instancd()

print (foo2)

foo3=Foo.get_instancd()

print (foo3)
#运行结果
<__main__.Foo object at 0x00000175D94B09B0>
<__main__.Foo object at 0x00000175D94B09B0>
<__main__.Foo object at 0x00000175D94B09B0>

 

由以上运行结果做可知,分别用foo1,foo2,foo3实例化类Foo,而在内存中只创建了一块内存空间,其他的均指向了该内内存空间。

http://www.bkjia.com/Pythonjc/1311618.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1311618.htmlTechArticle一种设计模式--单例模式,设计模式-- 单例模式 单例模式,是一种减轻内存负担的设计模式。如果创建的对象在以前创建过,则直接指向该...

本文由金沙官网线上发布于编程,转载请注明出处:一种设计模式--单例模式

您可能还会对下面的文章感兴趣: