单例模式应用场景_python单例模式的理解,就是单个实例

下面用普通实例和单例模式对比,来理解什么是单例模式和一些应用场景

普通实例和单例模式区别

普通实例:创建多个实例,执行多次__new__()方法,实例化创建多个,执行多次(默认)

单例模式:创建多个实例,只执行一次__new__()方法,实例化创建多个,执行一次(自己通过逻辑实现)。单例模式其实也是普通实例的一种特殊形式

  • 通过重写__new__()方法,来实现只执行一次__new__()方法,实例化用 类() 就可以自动执行__new__()方法,来创建实例
  • 通过自定义类方法(如get_instance),实现只执行一次__new__()方法,实例化用 类.get_instance(),来创建实例

1、普通实例:实例化可创建多个对象

创建对象方法:用 类() 的形式来创建对象

普通实例

be5489c779f8d902ee8b23185f436d56.png

2、单例模式:单个实例,实例化永远只创建一个对象

使用场景:

所有封装数据都一样时,资源可以共享时,使用单例模式类更有优势

  • 例如1:创建连接池保持连接池个数,主要是节省打开或者关闭数据库连接所引起的效率损耗
  • 例如2:多线程的线程池设计,单例模式便于对线程池中的线程进行控制
  • 例如3:Web应用读取配置文件,由于配置文件是共享的资源
  • 例如4:Socket创建连接
  • 还有很多应用场景

优势

  • 好处1:如果创建实例时间长,可以节省时间,提高效率。
  • 好处2:仅仅创建一个实例,可以节省内存。

单例模式 模板一:__news__() 方法,创建对象

明确两个小知识点

  1. 类定义: class Animal: 为简写方式,等价于Animal(object):
  2. 类加括号(类())就会先去执行__new__方法,再执行__init__方法

单例模式 模板一

b8602414ace96fe803fa2b38a7b786b1.png

单例模式 模板二:自定义类方法,创建对象

两点说明

  1. 用类方法的形式创建对象,类.类方法()
  2. 单独写一个类方法来实例化对象

单例模式 模板二

553dc6e2367810f3a3354a5451a75565.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值