码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2017-06-02 20:26:03      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:__new__   log   closed   ide   one   war   单例模式   技术   pass   

内容:保证一个类只有一个实例,并提供一个访问它的 全局访问点。

角色:单例(Singleton)

使用场景:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时

优点:

  • 对唯一实例的受控访问
  • 单例相当于全局变量,但防止了命名空间被污染

与单例模式功能相似的概念:全局变量、静态变量(方法)

单例的实现方法:

技术分享
#!/usr/bin/env python
# -*- coding: utf8 -*-
# __Author: "Skiler Hao"
# date: 2017/6/2 18:46


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


class MyClass(Singleton):
    pass


class1 = MyClass()
class2 = MyClass()

print(id(class1))
print(id(class2))
__new__方法实现单例

 

单例模式

标签:__new__   log   closed   ide   one   war   单例模式   技术   pass   

原文地址:http://www.cnblogs.com/skiler/p/6934827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!