Android-Kotlin-单例模式

出门莫恨无人随,书中车马多如簇。这篇文章主要讲述Android-Kotlin-单例模式相关的知识,希望能为你提供帮助。
先看一个案例,非单例模式的案例:
描述Dog对象:

package cn.kotlin.kotlin_oop08class Dog(var name:String, var color:String) {/** * 显示狗狗的名字 */ fun showDogName() { println("狗狗的名字是:${this.name}") }/** * 显示狗狗的颜色 */ fun showDogColor() { println("狗狗的颜色是:${color}") } }

 
main测试:
package cn.kotlin.kotlin_oop08fun main(args: Array< String> ) {/** * Dog("小白", "纯白色") 相当于java中的 new Dog("小白", "纯白色"); */ var dog1 = Dog("小白", "纯白色") dog1.showDogName() dog1.showDogColor()println("----------------------")/** * Dog("小黑", "黑色") 相当于Java中的 new Dog("小黑", "黑色"); */ var dog2 = Dog("小黑", "黑色") dog2.showDogName() dog2.showDogColor()println("----------------------")/** * 以上代码 由于实例化了 两次Dog() 所以他们的引用肯定是不一样的,所以打印false */ println(dog1 == dog2)/** * 实例化对象10次 * 以下代码相当于Java中 new Dog() 10次 */ Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2") Dog("参数1", "参数2")}

 
执行结果:【Android-Kotlin-单例模式】
Android-Kotlin-单例模式

文章图片

 
 
   
以上的 (非单例模式的案例),每当执行Dog() ,就会实例化一个对象,如果多次调用,或者 多个地方调用,会多次实例化,所以需要采用当例模式(只实例化一次)
单例模式案例
描述Dog对象        把class Dog {  修改成> > object Dog { 后 颜色变成黄色了:
Android-Kotlin-单例模式

文章图片
把class Dog {  修改成> > object Dog { 后 就属于单例模式了,只实例化一次
package cn.kotlin.kotlin_oop08/** * 把class Dog {修改成了> > object Dog { 后 在JVM中只会实例化一次,可以理解为当例模式 */ object Dog {var name:String = "" var color:String = ""/** * 显示狗狗的名字 */ fun showDogName() { println("狗狗的名字是:${name}") }/** * 显示狗狗的颜色 */ fun showDogColor() { println("狗狗的颜色是:${color}") } }

 
main测试:
package cn.kotlin.kotlin_oop08fun main(args: Array< String> ) {var dog1 = Dog dog1.name = "小白" dog1.color = "纯白色" dog1.showDogName() dog1.showDogColor()println("----------------------")var dog2 = Dog dog2.name = "小黑" dog2.color = "黑色" // dog2.showDogName() // dog2.showDogColor() // 也可以这样调用方法 Dog.showDogName() Dog.showDogColor()println("----------------------")/** * 以上代码 由于只实例化了1次Dog() 所以他们的引用肯定是一样的,所以打印true */ println(dog1 == dog2)/** * 永远实例化对象一次 */ Dog Dog Dog Dog Dog Dog Dog Dog Dog Dog}

 
执行结果:
Android-Kotlin-单例模式

文章图片

 
 
 
 
 
   

    推荐阅读