在 Kotlin 中实现单例模式有多种方法,这里我向您展示两种常用的实现方式:使用 object 声明和使用伴生对象(companion object)。
- 使用 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
- 使用伴生对象(companion object):
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)模式。