Зачем использовать символ подчеркивания kotlin при объявлении переменных в модели представления - PullRequest
0 голосов
/ 11 февраля 2020

В представлении модели примера android, Google использовал следующий шаблон:

private val _dialog = MutableLiveData<Dialog>()
val dialog : LiveData<FindaDialogFragment> = _dialog

Я искал в Google причину. В заключение, мы ограничили доступ так, чтобы фрагменты и действия не могли изменить данные в viewModel.

Я понял, но не мог сочувствовать. Есть ли на самом деле только одна причина? Если это так, код будет более длинным в viewModel, чтобы ограничить доступ к переменным.


private val name = MutableLiveData<String>()

также, При двухстороннем связывании данных используется только MutableLiveData. Это не логично.

Я хотел бы знать, есть ли другие причины для использования этого шаблона.

1 Ответ

1 голос
/ 11 февраля 2020

Есть ли на самом деле только одна причина?

Да.

Если это так, код будет длиннее в viewModel для ограничения доступа к переменным.

Да. Если вы не хотите, вам не нужно его использовать, и вы можете просто документально подтвердить, что он не предназначен для изменения.

При двустороннем связывании данных используется только MutableLiveData , Это не логично.

Это так; Для двухстороннего связывания данных необходимо изменить данные, поэтому необходимо MutableLiveData.

...