单例模式是项目中比较常用的,可以保证系统中一个类只有一个实例,其中静态内部类的是比较好的单例方法。
1 | 2 | 3 | |
---|---|---|---|
主要优点 | 提供了对唯一实例的受控访问 | 节约系统资源,提高系统的性能 | 允许可变数目的实例 |
写法 | 私有化构造方法 | 创建静态内部类 | 写获取方法 |
示例
java方式
public class Singleton {
private Singleton() {
}
private static class LazyHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance(){
return LazyHolder.INSTANCE;
}
}
更新
kotlin方式
class Singleton private constructor() {
companion object {
fun getInstance() = Holder.INSTANCE
}
private object Holder {
val INSTANCE = Singleton()
}
}
- private constructor()私有化构造方法
- object Holder 相当于静态内部类,object 是单例的修饰符
- companion object 类似于java的静态变量static
网友评论