设计模式--单例模式
2017-09-11 本文已影响3人
大炮对着虫子
最近开始学习设计模式,第一个学习的是单例模式,因为觉得这个是比较简单的。
所谓的单例模式,永远只有一个实例。
单例模式分为饿汉模式和懒汉模式。
使用场景:
1、比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
2、数据库连接池和线程池的设计
3、对于频繁使用或者需要较多的资源的对象,使用单例模式可以节省创建对象的时间,并且可以减少内存的占用
饿汉模式 :步骤 1、构造方法私有化 2、私有化创建类的对象给外部使用,即封装一个函数返回对象。
![](https://img.haomeiwen.com/i1527003/85ab19b730a212ce.png)
懒汉模式:
![](https://img.haomeiwen.com/i1527003/f1f3d9d89cc7da19.png)
以上是在单线程下,单例模式下的两种情况,但在多线程下,饿汉模式是安全的,但懒汉模式下并不能支持高并发,需要做下面的修改:
![](https://img.haomeiwen.com/i1527003/36cc11c5a8609855.png)