首页 > 代码库 > 单例模式
单例模式
实现:
# 单例实现:
class Foo: __v = None @classmethod #类方法 def get_instance(cls): if cls.__v: return cls.__v else: cls.__v = Foo() return cls.__v # obj1 = Foo.get_instance() # print(obj1) # obj2 = Foo.get_instance() # print(obj2) # obj3 = Foo.get_instance() # print(obj3)
适用场景:
只创建一个实例,节省空间。
数据库连接池
原理:在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。
# tornado中的IOloop class IOLoop(): @staticmethod def instance(): if not hasattr(IOLoop, "_instance"): with IOLoop._instance_lock: if not hasattr(IOLoop, "_instance"): IOLoop._instance = IOLoop() return IOLoop._instance
单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。