python之单例模式

来源:互联网 发布:ipsec dh算法 编辑:程序博客网 时间:2024/06/10 02:11
#! /usr/bin/env python# -*- coding:utf-8 -*-#单例模式 通过定义一个私有的类的静态变量和一个获取对象的接口#为什么需要单例模式 例如我们穿件了一个数据库连接池对象,该对象每次创建时,创建多个连接对象,我们只需要为外部提供一个# 获取连接对象的接口,这时我们只希望这个类只生成一个对象,而不希望该类创建多个对象耗费过多的资源#即单例模式应用场景大致为类的数据内容相同时,我们只需要调用相关的接口来实现对应的功能,一个实例便可以解决我们的需求。"""c++ 中的单例模式1.我们只希望有一个实例,可以将类的构造函数声明为私有的,让外部无法继续实例化2.用来记录是否存在类的对象3.位外部提供一个接口用于获取创建的实例class One{private:    One();    static One obj;public:    static One getObj()    {        if(obj == NULL)            obj = new One();        return obj;    }}""""""python实现单例模式思想:与c++实现类似,定义了一个静态变量和一个静态方法作为接口"""class SingleCls:    __instance = None    def __init__(self):        pass    @staticmethod    def get_instance():        if SingleCls.__instance == None:            SingleCls.__instance = SingleCls()            return SingleCls.__instance        else:            return SingleCls.__instanceobj1 = SingleCls.get_instance()print(obj1)obj2 = SingleCls.get_instance()print(obj2)

原创粉丝点击