单例模式是自打我知道设计模式这个名词之后,第一个听说的一个具体的设计模式.它的使用情景是有一些关键性资源只允许产生一个实例.如果有多个实例产生的话,就会对我们的实际情况产生许多干扰.
以下是我在看书的过程中总结的几个要点:
- 确保一个类只有一个实例,并提供一个全局访问实例.
- 在Java中实现单例模式需要一个私有的构造方法,一个静态方法和一个静态实例.
- 确定在性能和资源上的限制,然后小心的选择适当的方案来实现单例,以解决多线程问题(我们必须认定所有的程序都是多线程的)
- 如果使用了多个类加载器,可能导致单例失效,产生多个实例
- 单例模式分为两种:懒汉模式和饿汉模式
- 懒汉模式:加载类的时候比较快,但是运行时获取对象的速度比较慢,因为在创建单例类的时候没有创建类的对象.是线程不安全的.要在getInstance()方法上加上syncronized关键字,如果为了效率的话需要加上双重锁定
- 饿汉模式:加载类的时候比较慢,但是运行时获取对象的速度比较快.因为在创建单例类的时候创建了类的对象.是线程安全的.
单例模式本身的代码量是很少的,但是代码量少并不代表它很简单,要想理解它的真正思想,还要多运用多思考.
时间: 2024-10-08 13:59:48