【问题标题】:Create Retrofit service class Kotlin创建改造服务类 Kotlin
【发布时间】:2020-10-09 03:28:16
【问题描述】:

创建改造实例最合适的方法是什么?(不一定在以下 3 个选项之间) 这三种方式有什么区别?

选项 1

object BuffApi {
    val retrofitService : BuffApiService by lazy {
        retrofit.create(BuffApiService::class.java)
    }
}

选项 2

object BuffApi {
    val retrofitService2: BuffApiService = retrofit.create(BuffApiService::class.java)
}

选项 3

class BuffApi {
    val retrofitService: BuffApiService = retrofit.create(BuffApiService::class.java)
}

【问题讨论】:

    标签: android kotlin retrofit2


    【解决方案1】:

    如果您有可能不调用 retrofitService ,或者不经常调用,最好使用选项 1 - val retrofitService : BuffApiService by lazy {,因为您的程序在访问或调用之前不会初始化变量 retrofitService它可以减少内存使用量。

    在另一种情况下,Option_2 会有所帮助,因为它是静态的,您不必每次要访问它时都创建一个新对象,而且最好使用单个 Service 实例,例如 (retrofit、存储库)类。

    Option_2 和 Option_3 的 ByteCode 生成几乎相同:40 和 64 行:但 Option_1 大约是 146 行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2018-07-28
      • 2016-08-08
      • 2021-05-25
      • 2017-10-26
      相关资源
      最近更新 更多