一.为什么要使用单例来创建对象?
对象是类(Class)的具体实现,只有创建该类的对象,才能实现这个类里面的方法。
单例化对象则使创建对象更加安全,不轻易暴露去调用类的方法。
二.如何使用单例化对象?
通俗的来讲,单例就是一个方法,即调用这个方法去创建对象
1.该类必须私有化构建
class FileManager private constructor(){ }
2.创建对象的函数静态化
companion object{ private var instance :FileManager ?= null fun defInstance():FileManager{ } }
下面是完整代码:
class FileManager private constructor(){ //单例化对象 companion object{ private var instance :FileManager ?= null fun defInstance():FileManager{ if (instance == null){ synchronized(this){ if (instance == null){ instance = FileManager() } } } return instance!! } }}
其中对其加锁(synchronized)更安全。