设计模式-单例

单例模式

1.设置全局变量使得类的对象可以被访问,但是还不能防止被多次实例化
2.让类自身保存唯一的实例,保证只能被实例化一次


饿汉式:类被加载时就将自己实例化,优点是避免多线程访问的安全性,缺点是提前占用系统资源
懒汉式:类在第一次被引用时才将自己实例化,避免了提前占用系统资源,但是有多线程访问安全性问题


代码示例1:

class Singleton(object):
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, '_inst'):
            cls._inst = super(Singleton, cls).__new__(cls, *args, **kwargs)
        return cls._inst

class A(Singleton):
    def __init__(self, name):
        self._name = name

if __name__ == '__main__':
    a = A('apple')
    b = A('banana')

    print a._name, id(a), a
    print b._name, id(b), b
    print a is b

其他方法有基类元祖__metaclass__法,自定义模块module法,装饰器法等等。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 介绍 为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,我们无法再...
    666真666阅读 443评论 0赞 6
  • 单例模式(Singleton Pattern)是众多设计模式中较为简单的一个,同时它也是面试时经常被提及的问题,如...
    廖少少阅读 682评论 0赞 1
  • 目录 本文的结构如下: 什么是单例模式 为什么要用该模式 模式的结构 代码示例 优点和缺点 适用环境 模式应用 总...
    w1992wishes阅读 520评论 1赞 2
  • Java设计模式——单例模式 单例模式应该是大家最为熟知的一种设计模式了,相信大家或多或少的都在自己的项目中使用过...
    gogoingmonkey阅读 596评论 0赞 2
  • 又一天过去了,距离30岁又接近了一天。在这些奔三的岁月里,最受人关注的其实无非个人问题,或者工作与未来。而每每被问...
    落音吹羽阅读 553评论 0赞 0

友情链接更多精彩内容