今天预习了一下Kotlin的几种种单例模式
其中kotlin有五种单例模式分别是:
1.饿汉式
2.懒汉式
3.静态内部类式
4.双重校验锁式
5.线程安全的懒汉式
主要预习了一下饿汉式 懒汉式
饿汉式:
我们先用我们熟悉的java来实现以下饿汉式
//java
public class SingletonDemo{
private static SingletonDemo instance = new SingLetonDemo();
private SingletonDemo(){
}
public static SingLetonDemo getInstance(){
return instance;
}
}
最基础的饿汉式 也是最熟悉的 再来看一下我们的Kotlin来实现
//Kotlin
object SingletonDemo
就解决了 一行代码 跟java比起来要省事很多。
懒汉式:
//java
public class LecationDemo{
private static LecationDemo lecationdemo;
private LecationDemo(){}
public static LecationDemo getInstance(){
if(lecationdemo == null){
lecationdemo = new LecationDemo();
}
return lecationdemo;
}
}
//kotlin
class LecationDemo private sturector(){
companion object{
private var instance : LecationDemo ?= null
get(){
if(field ==null){
field = LecationDemo()
}
return field
}
fun get() : LecationDemo{
return instance!!
}
}
}
对比这两个 在Kotlin中 我们只是让主构造函数私有化并且自定义了属性访问器 但是里面构造是和java相似的。
再说下Kotlin的对象声明
因为在学习了Kotlin中 知道了Kotlin类中并没有静态方法,但是 如果我们要用的时候,需要写一个可以不用一个类的实例来调用,但是我们需要去访问类的内部的函数 比如像单例;可以把类声明一个对象 ,用这个对象与其他的语言的静态成员是差不多的。