一:单例模式

  单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。

  通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例.

  常用例子:数据库连接串,只保存一个,或者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 一样

最新文章

  1. [Git] Git基础
  2. PHP的PDO
  3. WPF学习之路(十二)控件(HeaderedContent控件)
  4. HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
  5. event.keyCode|| event.which.的用法
  6. Objective-C /iphone开发基础:分类(category,又称类别)
  7. cocos2dx android平台事件系统解析
  8. cocos2d-x载入texture
  9. C语言的一些基础
  10. Mac iterm2 linux vim 语言问题
  11. centos7 yum 安装 redis
  12. JSTL之forEach的使用详解(简单的技术说得很详细)
  13. SVD的概念以及应用
  14. python之模块与包
  15. MyBatis-Plugins 的创建流程与执行顺序
  16. openstack Q版部署-----keystone认证服务安装配置(3)
  17. js return false\e.preventDefault() 以及session
  18. ztree 使用心得
  19. 《iOS用户体验》总结与思考-改动版
  20. contract

热门文章

  1. Ganglia 入门介绍及解决fsockopen error: Connection refused问题
  2. Java爬网页数据,并存储到本地数据库中
  3. Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架
  4. 用EditPlus和jdk写Java代码
  5. Linux top 命令详解
  6. LR-Controller 如何自定义显示虚拟用户状态
  7. 百度地图API的应用
  8. proxysql 系列 ~ 读写分离核心功能
  9. 2017-2018-2 20165237 实验三《 敏捷开发与XP实践》实验报告
  10. Linux7系列阅读