object Test
class Text private constructor() {
companion object {
private var instance: Text? = null
get() {
if (field == null) {
field = Text()
}
return field
}
fun get(): Text {
return instance!!
}
}
}
class Text2 private constructor() {
companion object {
private var instance: Text2? = null
get() {
if (field == null) {
field = Text2()
}
return field
}
@Synchronized
fun get(): Text2 {
return instance!!
}
}
}
class SingletonDemo private constructor() {
companion object {
val instance: SingletonDemo by lazy {
SingletonDemo()
}
}
}
// 静态内部类
class Singleton private constructor() {
companion object {
val instance = SingletonHolder.holder
}
private object SingletonHolder {
val holder = Singleton()
}
}
Kotlin单例模式写法总结
于 2023-05-10 17:23:01 首次发布
这篇文章展示了Java中实现单例模式的几种方法,包括使用私有构造器、伴生对象和双重检查锁定(DCL)。Text和Text2类演示了如何通过伴生对象创建单例,Text2使用了@synchronized保证线程安全。SingletonDemo类利用Kotlin的lazy初始化实现单例。静态内部类Singleton则通过SingletonHolder保持单例实例。

756

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



