我应该在 Kotlin 库中使用 Object 还是 Class

Should i use Object or Class in a Kotlin library

我正在为应用程序编写 Kotlin 库。此库收集事件、错误、设备信息等信息以供稍后分析。

为了便于使用,我使用了对象而不是 类。库中的示例对象:

internal object LoggingModule { ...lots of methods to use internally... }

但我想知道使用 类 代替库中的对象是否更好?因为有一个 public 方法可以停止在库初始化时收集信息,并且由于有这个功能,所以如果选择了这个功能,也不需要在应用程序初始化(意思是对象)时创建 类。但我也不认为对app会有很大的影响。

初始化示例:

class App: Application() {
    override fun onCreate() {
        super.onCreate()

        MyLibrary.setThings(myParameters).setEnabled(true).init() 

    }
}

我该怎么办?在这种情况下对象不是一个好主意吗?

Kotlin 中的对象是单例和静态的。

问题的答案与共享状态有关。单例应该是无状态的,没有任何共享。

我对诸如“我只使用 X;我从不使用 Y”这样的教条式想法表示怀疑。

更好地理解差异并根据具体情况适当应用它们。