Свойства поддержки ViewModel [kotlin] - PullRequest
0 голосов
/ 29 октября 2018

Просматривая код некоторых демонстрационных приложений Google (например, подсолнечника или приложения Google io 2018), и я заметил, что для вспомогательных свойств viemodels они используют отдельный экземпляр того же типа с пользовательским геттером; как это: private val _userData: MutableLiveData<User>; val userData: LiveData<User> get() = _userData; но почему они это делают? Не лучше ли напрямую сделать _userData доступным? Может быть, потому что _userData является MutableLiveData, они не хотят, чтобы наблюдатель мог изменить значение?

1 Ответ

0 голосов
/ 30 октября 2018

userData, который подвергается действию или фрагменту, должен быть неизменным, так как представление должно только наблюдать к LiveData. Итак, нам нужно, чтобы _userData вернул LiveData.

Одним из способов является использование соглашения о кодировании Kotlin и создание двух переменных, _userData и userData, одна из которых изменчива, а другая нет:

Если класс имеет два свойства, которые концептуально совпадают, но одно является частью общедоступного API, а другая - деталь реализации, использование подчеркивание в качестве префикса для имени частной собственности.

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