Как слушать некоторые вар из другого класса без ссылки в Kotlin - PullRequest
0 голосов
/ 16 апреля 2020

Когда я разрабатывал приложение android с Java, я использовал EventBus , затем я использовал java.util.observable для прослушивания некоторой переменной без получения ссылки на класс / службу. Например, я мог прослушивать в ViewModel / Activity некоторые переменные из службы, не получая экземпляр этой службы.

Я делал это до того, как начал использовать чистую архитектуру, SOLID, MVVM et c. Сейчас я широко использую шаблоны LiveData и ViewModel, а также инъекцию зависимостей с помощью Dagger2. Итак, каждый раз, когда у меня есть ссылка для прослушивания переменной LiveData.

Я брожу, если существует в Kotlin способ прослушивания переменной в одном классе из другого класса без получения ссылки на другой класс?

Это не практический вопрос, это просто любопытство

1 Ответ

1 голос
/ 16 апреля 2020

Для прослушивания данных из переменной просто используйте LiveData. оберните вашу переменную в LiveData и используйте наблюдателя, чтобы наблюдать изменения данных в ней. Также, если ваша переменная находится где-то в классе, для которого вы не хотите создавать объект. Затем вы можете просто обернуть эту переменную в объект-компаньон следующим образом.

class Test() {
  companion object {
    var testvariable = "Hello"
  }
}

, а затем просто вызвать ее как «Test.testvariable»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...