前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Kotlin] 单例的写法

[Kotlin] 单例的写法

原创
作者头像
用户3702315
修改2021-04-13 17:41:17
6390
修改2021-04-13 17:41:17
举报
文章被收录于专栏:安卓开发
代码
代码语言:txt
复制
// 单例关键字object,声明为单例类之后会立即在内存中创建单例对象,并一直存在。

object BigHeadSon:IWashBow {    

    override fun washBow() {

        println("洗碗赚100000000元钱")

    }

}



fun main(args: Array<String>) {

    BigHeadSon.washBow()

}
饿汉式
代码语言:txt
复制
// Java实现

public class SingletonDemo {

    private static SingletonDemo instance = new SingletonDemo();

    private SingletonDemo(){



    }

    public static SingletonDemo getInstance(){

        return instance;

    }

}



// Kotlin实现

object SingletonDemo
懒汉式
代码语言:txt
复制
// Java实现

public class SingletonDemo {

    private static SingletonDemo instance;

    private SingletonDemo(){}

    public static SingletonDemo getInstance(){

        if(instance == null){

            instance = new SingletonDemo();

        }

        return instance;

    }

}



// Kotlin实现

class SingletonDemo private constructor() {

    companion object {

        private var instance: SingletonDemo? = null

            get() {

                if (field == null) {

                    field = SingletonDemo()

                }

                return field

            }

        fun get() : SingletonDemo {

        // 细心的小伙伴肯定发现了,这里不用getInstance作为为方法名,是因为在伴生对象声明时,内部已有getInstance方法,所以只能取其他名字

         return instance!!

        }

    }

}
其他

Https://www.jianshu.com/p/5797b3d0ebd0

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码
  • 饿汉式
  • 懒汉式
  • 其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档