zoukankan      html  css  js  c++  java
  • 单例模式

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

    角色:单例(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__方法实现单例
  • 相关阅读:
    Bellman-Ford算法
    POJ 1990 MooFest
    POJ3067:Japan(树状数组求逆序对)
    树状数组求逆序对
    树状数组
    Is It A Tree?(hdu1325)
    强连通图 Tarjan算法
    UVALive
    UVALive
    Problem Statement
  • 原文地址:https://www.cnblogs.com/skiler/p/6934827.html
Copyright © 2011-2022 走看看