Python:设计模式介绍--单例模式

单例模式

1、单例是只有一个实例2、通过静态字段+静态字段伪造出一个单例效果3、什么时候用:当所有实例中封装的数据相同时,创建单例模式(eg:连接池)
用单例模式创建连接池:
class CP:
    __instance = None
    def __init__(self):
        self.ip = "1.1.1.1"
        self.port = 3306
        self.pwd = "123123"
        self.user = "xxx"
        self.conn_list = [1,2,3,4,5,6]
    @staticmethod
    def get_instance():
        if CP.__instance:
            return CP.__instance
        else:
            # 创建一个对象,并将对象赋值给静态字段__instance
            CP.__instance = CP() #执行init方且创建对象,并赋值给私有静态字段
            return CP.__instance #将赋值的返回给私有静态字段

obj1 = CP.get_instance() # 静态字段类调用
print(obj1)

推荐书籍:大话设计模式

				
时间: 2024-10-26 06:25:33

Python:设计模式介绍--单例模式的相关文章

python 设计模式之 单例模式

单例模式是做为"全局变量"的替代品出现的.所以它具有全局变量的特点:全局可见.贯穿应用程序的整个生命期,保证在程序执行中,某个类仅仅存在一个实例,所以通常不希望类中的构造函数被调用 python: class Single(object): instance = None # def __init__(self): pass # def getInstance(self): if Single.instance == None: Single.instance = Single() r

Python设计模式之单例模式

单例模式 单例模式需要注意的地方在于 如何保证创建的实例是唯一的 如何保证多线程情况下的访问 清晰明了 目前有这么几种方法: module metaclass __new__ decorator module 其实,Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码.因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象了.如果我们真的想要一个单例类,可以考虑这样做: 首先

python设计模式之--单例模式

python的单例模式就是一个类的实例只能自始自终自能创建一次.应用场景比如说数据库的连接池. #!/usr/bin/env python # coding=utf-8 class Foo(object): instance = None def __init__(self, name): self.name = name @classmethod def get_instance(cls): if cls.instance: return cls.instance else: obj = cl

Python设计模式中单例模式的实现及在Tornado中的应用

单例模式的实现方式 将类实例绑定到类变量上 class Singleton(object): _instance = None def new(cls, *args): if not isinstance(cls._instance, cls): cls._instance = super(Singleton, cls).__new__(cls, *args) return cls._instance 但是子类在继承后可以重写__new__以失去单例特性 class D(Singleton):

python设计模式之一-单例模式

引言 在面向对象的世界里,对象是对客观事物的抽象,类是对对象的抽象.它们之间的关系是,对象是类的实例,类是对象的模板. 这段文字表述起来费劲,理解起来也费劲,还是讲生活中的例子吧.比如说"大河",一联想到这个词,不同的人脑海中的印象是不一样的,有的是"大漠孤烟直,长河落日圆",有的是"春江潮水连海平,海上明月共潮生",有的是"星垂平野阔,月涌大江流".在这个例子中,大河可以认为是一个类,大河具有所有河流的共性特征,如有河堤,有

23种设计模式介绍以及单例模式的学习

1.GOF23 设计模式总共分成创建型模式.结构型模式和行为型模式三种: a.创建型模式: - 单例模式.工厂模式.抽象工厂模式.建造者模式.原型模式 b.构建型模式: - 适配器模式.桥接模式.装配模式.组合模式.建造者模式.原型模式 c.行为性模式: - 模版方法模式.命令模式.迭代器模式.观察者模式.中介者模式.备忘录模式.解释器模式.状态模式.策略模式.职责链模式.访问者模式. 2.下面介绍单例模式:(在后面的博文中会一一介绍主要的设计模式) a.核心作用:保证一个类只有一个实例,并且提

设计模式之单例模式与工厂模式的Python实现(一)

1. 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息.如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会

PHP设计模式之单例模式简单代码介绍

PHP设计模式之单例模式 单例模式是一种创建型模式,它会限制应用程序,使其只能创建某一特定类类型的一个单一的实例.举例来说,一个web站点将会需要一个数据库连接对象,但是应该有且只能有一个,因此我们通过使用单例模式来实现这种限制. 我们可以使用一个静态属性来保证对于一个特定的类来说只存在一个单一的实例. Class someclass{ Static private $_instance = NULL; } [示例]config类实现了单例模式,以便整个web应用程序可以使用同一个配置对象. <

Java设计模式:单例模式

概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能