python中的单例模式_python设计模式之一-单例模式

引言¶

在面向对象的世界里,对象是对客观事物的抽象,类是对对象的抽象。它们之间的关系是,对象是类的实例,类是对象的模板。

这段文字表述起来费劲,理解起来也费劲,还是讲生活中的例子吧。比如说“大河”,一联想到这个词,不同的人脑海中的印象是不一样的,有的是“大漠孤烟直,长河落日圆”,有的是“春江潮水连海平,海上明月共潮生”,有的是“星垂平野阔,月涌大江流”。在这个例子中,大河可以认为是一个类,大河具有所有河流的共性特征,如有河堤,有长度,会流向大海等特性,而几句诗中的“石羊河”、“浏阳河”、“长江”等分别是大河的一个实例化对象。

在大河的例子中,一个大河类可以有多个不同的实例。可是,我们今天的主角-单例模式,应用单例模式的类却只能有一个实例。

比如我们常见的操作系统的任务管理器,它就是一个单例模式的实现。

定义¶

单例模式(singleton pattern):确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

这个定义有三个要点

某个类只能有一个实例

类应当自行创建这个实例

它必须向整个系统提供这个实例

UML结构¶

1_singleton.PNG

角色:单例本身

优缺点¶

优点¶应用单例模式实例化类在应用程序域中只存在一个对象,满足业务需要的同时,无疑也能降低内存消耗,提高计算机性能。

由于实例化的过程由类本身完成,可方便地选择实例时机。

缺点¶由于单例模式通常为单一类且不允许继承,所以它的扩展能力受限。

由于上一点的原因,单例类通常承载了过多的职能,违反了单一职责原则。

实例¶

Lilei和Hanmeimei经过多年的爱情长跑,终于迈入婚姻的殿堂。婚后不久,就有了爱情的结晶,小朋友名叫LittleMango。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值