java实现单例模式
一直习惯于java的写法,java实现单例主要的思想是构造函数私有,然后考虑线程安全,在实现的时候又有double-check/静态内部类/枚举等实现方式。单例从初始化顺序来说, 又分为“懒汉式”/“饿汉式”。
kotlin实现单例模式
-
kotlin的常量和静态方法
kotlin可以使用伴生对象的概念来实现静态常量和方法,关键字为
companion object
;代码如下
class NetworkManager private constructor(){
//kotlin伴生对象(实现java中静态变量和静态方法)
companion object StaticParams{
private const val HALF_DAY_MILLIS = 12 * 60 * 60 * 1000;
}
}
- kotlin的单例实现
class NetworkManager private constructor(){
//kotlin伴生对象(实现java中静态变量和静态方法)
companion object StaticParams{
private const val HOUR_12_MILLIS = 12 * 60 * 60 * 1000;
private var instance : NetworkManager? = null
get() {
if (field == null) {
field = NetworkManager()
}
return field
}
@Synchronized
fun get() : NetworkManager{
return instance!!
}
}
}
如果有朋友跟我一样对kotlin完全是新手,可以参照这篇文章了解object跟companion object
的区别。
网友评论