37)django-单例模式
2024-10-09 09:12:06
一:单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。
通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例.
常用例子:数据库连接串,只保存一个,或者kindediter等过滤类等。
二:单例模式实现
方法1:
# -*- coding:utf-8 -*-
__author__ = 'shisanjun' class Foo(object):
instance=None def __init(self):
self.name="shisanjun" @classmethod
def get_intance(cls):
if Foo.instance:
return Foo.instance
else:
Foo.instance=Foo()
return Foo.instance def process(self):
return "" obj1=Foo.get_intance()
obj2=Foo.get_intance()
print(id(obj1),id(obj2))
#结果:44675872 44675872 一样
方法2:通过__new__方法实现,__new__在__init__前先执行
# -*- coding:utf-8 -*-
__author__ = 'shisanjun' class Foo(object):
instance=None def __init(self):
self.name="shisanjun" def __new__(cls, *args, **kwargs):
if Foo.instance:
return Foo.instance
else:
Foo.instance=object.__new__(cls,*args,**kwargs)
return Foo.instance def process(self):
return "" obj1=Foo()
obj2=Foo()
print(id(obj1),id(obj2))
#结果:38187808 38187808 一样
最新文章
- [Git] Git基础
- PHP的PDO
- WPF学习之路(十二)控件(HeaderedContent控件)
- HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
- event.keyCode|| event.which.的用法
- Objective-C /iphone开发基础:分类(category,又称类别)
- cocos2dx android平台事件系统解析
- cocos2d-x载入texture
- C语言的一些基础
- Mac iterm2 linux vim 语言问题
- centos7 yum 安装 redis
- JSTL之forEach的使用详解(简单的技术说得很详细)
- SVD的概念以及应用
- python之模块与包
- MyBatis-Plugins 的创建流程与执行顺序
- openstack Q版部署-----keystone认证服务安装配置(3)
- js return false\e.preventDefault() 以及session
- ztree 使用心得
- 《iOS用户体验》总结与思考-改动版
- contract
热门文章
- Ganglia 入门介绍及解决fsockopen error: Connection refused问题
- Java爬网页数据,并存储到本地数据库中
- Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架
- 用EditPlus和jdk写Java代码
- Linux top 命令详解
- LR-Controller 如何自定义显示虚拟用户状态
- 百度地图API的应用
- proxysql 系列 ~ 读写分离核心功能
- 2017-2018-2 20165237 实验三《 敏捷开发与XP实践》实验报告
- Linux7系列阅读