目录
单例模式时软件开发中最常见的设计模式之一,它确保一个类只有一个实例,并提供一个全局访问点。在Kotlin中,实现单例模式有多种方式,每种方式的都有其特点和适合场景。
1. 对象声明(Object Declaration)- 推荐方式
这是Kotlin中最简单、最常用的单例实现方式。
object Singleton{
private var data: String = "Initial Data"
fun doSomething(){
println("Singleton is doing something with: $data")
}
fun updateData(newData: String){
data = newData
}
}
// 使用示例
fun main(){
Singletom.doSomething();// 输出: Singleton is doing something with: Initial Data
Singleton.updateData("New Data")
Singleton.doSomething() // 输出: Singleton is doing something with: New Data
}
特点:
- 线程安全
- 懒加载(在第一次访问时初始化)
- 简洁明了
- 序列化需要额外处理
2. 伴生对象 + 懒加载
这种方式提供了更多的控制权,特别是需要参数化构造时。
class LazySingleton private constructor(private val config: String) {
companion object {
@Volatile
private var instance: LazySingleton? = null
fun getInstance(config: String = "default"): LazySingleton {
return instance ?: synchronized(this) {
instance ?: LazySingleton(config).also {
instance = it }

最低0.47元/天 解锁文章
1145

被折叠的 条评论
为什么被折叠?



