zoukankan      html  css  js  c++  java
  • python实现单例模式总结

    一、什么是单例模式

    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
    当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

    二、用类装饰器实现单例模式

    def single_deractor(cls):
        __instance = {}
        def inner(*args,**kwargs):
            if cls not in __instance:
                __instance[cls] = cls(*args,**kwargs)
            return __instance[cls]
        return inner
    @single_deractor
    class Foo:
        def __init__(self,name):
            self.name = name
    f1 = Foo('zs')
    f2 = Foo('ls')
    print(f1.name,f2.name)
    print(f1 is f2)

    三、使用__new__

    class Foo:
        __instance = None
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def __new__(cls, *args, **kwargs):
            if not cls.__instance:
                cls.__instance = object.__new__(cls)
            return cls.__instance
    f1 = Foo('zs',12)
    f2 = Foo('ls',13)
    print(f1.name,f2.name)
    print(f1 is f2)

    四、使用元类

    待补充,研究中

  • 相关阅读:
    模拟道路交通简单练习(类)
    printf 格式化输出符号
    ffplay源码分析01 ---- 框架
    RTSP协议
    SRS流媒体服务器03 ---- st-thread
    生成aac sdp文件
    生成h264 sdp文件
    RTP分包解包 ---- H264
    RTP协议
    SRS流媒体服务器02 ---- 文件框架
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9579521.html
Copyright © 2011-2022 走看看