#! /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.__instance
obj1 = SingleCls.get_instance()
print(obj1)
obj2 = SingleCls.get_instance()
print(obj2)
python之单例模式
最新推荐文章于 2018-01-05 20:02:16 发布