在 Kotlin 中实现单例模式有多种方法,这里我向您展示两种常用的实现方式:使用 object 声明和使用伴生对象(companion object)。
object Singleton {
private var instance: Singleton? = null
fun getInstance(): Singleton {
if (instance == null) {
synchronized(this) {
if (instance == null) {
instance = Singleton()
}
}
}
return instance!!
}
// 在这里添加您的其他方法和属性
}
使用示例:
val singleton1 = Singleton.getInstance()
val singleton2 = Singleton.getInstance()
// 检查两个实例是否相同
println(singleton1 === singleton2) // 输出 true
class Singleton {
companion object {
private var instance: Singleton? = null
fun getInstance(): Singleton {
if (instance == null) {
synchronized(Singleton::class.java) {
if (instance == null) {
instance = Singleton()
}
}
}
return instance!!
}
// 在这里添加您的其他方法和属性
}
}
使用示例:
val singleton1 = Singleton.getInstance()
val singleton2 = Singleton.getInstance()
// 检查两个实例是否相同
println(singleton1 === singleton2) // 输出 true
这两种方法都可以实现 Kotlin 中的单例模式。请注意,在多线程环境下,为了避免同步带来的性能问题,可以考虑使用双重检查锁定(Double-Checked Locking)模式。