Должен ли я использовать объект или класс в библиотеке Kotlin

#class #kotlin #object #android-library

Вопрос:

Я пишу библиотеку Kotlin для приложения. Эта библиотека собирает информацию, такую как события, ошибки, информация об устройстве, для последующего анализа.

Я использовал объекты вместо классов для удобства использования. Пример объекта из библиотеки:

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

Но мне интересно, не лучше ли использовать классы вместо объектов в библиотеках? Поскольку существует общедоступный метод, позволяющий прекратить сбор информации при инициализации библиотеки, и поскольку эта функция существует, также нет необходимости создавать классы при инициализации приложений (то есть объектов), если выбрана эта функция. Но я также не думаю, что это окажет огромное влияние на приложение.

пример инициализации:

 class App: Application() {  override fun onCreate() {  super.onCreate()   MyLibrary.setThings(myParameters).setEnabled(true).init()    } }  

Что мне делать? Разве объекты не являются хорошей идеей в этом сценарии?

Ответ №1:

Объекты в Котлине являются одноэлементными и статичными.

Ответ на этот вопрос связан с общим состоянием. Синглтоны должны быть лицами без гражданства, не имеющими общего доступа.

Я с подозрением отношусь к догматическим идеям, таким как «Я использую только X; я никогда не использую Y».

Лучше понять различия и применять их надлежащим образом в каждом конкретном случае.