#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».
Лучше понять различия и применять их надлежащим образом в каждом конкретном случае.