博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin实现单例模式
阅读量:5934 次
发布时间:2019-06-19

本文共 812 字,大约阅读时间需要 2 分钟。

  • 方式一(不含参)

    class Single private constructor() {    init {//初始化    }    private object Holder {        val INSTANCE = Single()    }    companion object {        val instance: Single by lazy { Holder.INSTANCE }    }}复制代码

  • 方式二(带参数)

    class Singleton private constructor(str: String) {    init {        println("Init")    }    companion object {        @Volatile        var instance: Singleton? = null        fun getInstance(a: String) {            if (instance == null) {                synchronized(Singleton::class)                {                    if (instance == null) {                        instance = Singleton(a)                    }                }                return instance!!            }        }    }}复制代码

测试实现

      

fun main(args: Array
) { Single.instance Singleton.getInstance("a")}复制代码

转载地址:http://njjtx.baihongyu.com/

你可能感兴趣的文章
java io性能分析
查看>>
封装自己DB
查看>>
BZOJ4739 : 定向越野
查看>>
JSON的三种解析方式
查看>>
html5--2.10综合实例2-移动端页面练习
查看>>
adb安装启动Touch校正软件
查看>>
英语日常词汇:living-room、dining-room vs dining hall
查看>>
java线程-synchronized实现可见性代码
查看>>
javascript提取联通个人信息和通话记录的代码
查看>>
049——VUE中使用animation与transform实现vue的动画效果
查看>>
Mac 使用自带的Ruby 安装brew
查看>>
Node.js 安装及环境配置之 Windows 篇
查看>>
关于ASP .NET Core在跨平台的linux ubuntun,SUSE ,Mac OS的发布的相关平台操作
查看>>
从密码到token, 一个授权的故事 auth2.0
查看>>
PHP常量
查看>>
SQL Server 事务复制分发到订阅同步慢
查看>>
04-maven学习-pom.xml解析
查看>>
ssh免密码登录配置方法
查看>>
介绍一种非常好用汇总数据的方式GROUPING SETS
查看>>
hdu1863
查看>>