设计模式之单例模式

2018-07-31 分类:Python 阅读(1083) 评论(0)

什么是设计模式,我们写代码就是为了解决一些实际的问题,当然在我们之前已经有很多优秀的程序员写了很多的代码,总结出来了某一类问题成熟的解决方案,我们拿来用就可以了。

设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

那什么是单例模式呢,它有什么具体的作用呢?

单例模式说直白一点就是只有一个实例,不管实例化多少次就只有一个实例。

举个例子来说,我们打开qq音乐,不管你打开几次,都只会有那一个qq音乐,打开多了放了好几首歌没法听了;再比如说回收站,你打开再多次只会打开一个。这就是用的是单例设计模式。

那在python里面怎么怎么实现单例模式呢,单例模式就是只有一个实例,那肯定是指类在实例化的时候,只会实例化一个,就需要用到类里面的一个内置函数__new__,类就是通过这个函数来进行实例化操作的。它在__init__之前先执行

那我们知道类是通过__new__函数来进行实例化的,那就好办了,思路就是先判断一下这个类有没有被实例化过,如果实例化过了,那我们就不要调用继续实例化了,返回原来的那个实例,如果没有被实例化才继续实例化。

先写一个普通的类,看一下实例化之后的内存地址,可以看到,正常的一个类,实例化两次,内存地址是不一样的,不是一个对象

再写单例模式,再实例化看内存地址

ps:重写__new__这个方法,如果想实例化必须调用一个父类的__new__(cls)方法,要不然不能实例化,单例模式的写法也很单一,死记硬背就可以了,代码如下:

 

 

 

您可能也喜欢:

Python AES加密

AES是一种常用的对称加密的方法,高级加密标准(Advanced Encryption Standard),对称加密就是加密解密的方式都一样,只要知道了你加密用的key就可以解密,加密速度比较快,适合大数据量的加解密处理 https://blog.csdn.net/qq_28205153/artic...

more

Python的重试模块

我们写代码的时候,经常会用到重试,如果出错了,或者出现了其他的问题,就重试一次或者N次,自己写实现起来比较复杂,用retrying模块就可以很容易的解决了。 1 pip instal...

more

python使用rsa加密

rsa加密 对称加密   对称加密,对称加密意思就是解密和加密的方式是一样的,比如说你自己设计了一段加密规则,b d s f => 2,3,4,5 这4个字母是相对应的,那只要知道这个加密的规则,也就可以解密了,这就是对称加密。   非对称加密(rsa)   rs...

more

评论&留言
欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称

登录

忘记密码 ?

切换登录

注册