单例
所谓单例模式,即是确保某一个类在整个系统中,只有一个实例。这是一种非常简单的设计模式,但是应用场景非常广泛,其优点非常明显,能够极大的减少系统对于同一个对象的创建和销毁,从而减少内存的开销。但是一定意义上来说,单例模式与我们熟知的单一职责原则有所冲突。
实现单例的方法
要了解如何保证一个类始终只有一个实例,首先需要知道,一个类是怎么创建实例的:
以上文章,总结了4种在Java中创建对象的方法,其中构造器是最常用的方法,而 Object 的 clone() 方法,其设计的意义与单例完全背道而驰,可以这么理解:如果一个类实现了 Cloneable 接口,那么设计者本身就不希望这个类是一个单例,所以就不做考虑了。另外一方面,在设计单例类时,要考虑到多线程并发访问的情况。
我总结了5种实现单例模式的方法:
- 饿汉模式
- 懒汉模式
- 静态内部类模式
- 单元素枚举类模式
- 登记模式
以上5种方式,其各自的优劣,会在之后一一说明,欢迎补充和指正。
时间: 2024-10-11 10:43:45