MutableLiveData
- это, по сути, LiveData
с открытым доступом к двум методам setValue()
и postValue()
для изменения этих данных.
Следовательно, MutableLiveData
необходим, если вы планируете изменять значения LiveData.
Однако в программировании принято делать ваши переменные неизменяемыми или ограничивать доступ тех, кто может изменять данные объекта. Вы бы не хотели предоставлять возможность изменять содержимое переменных внутри объекта, если в этом нет необходимости.
Следовательно, для MutableLiveData
мы обычно используем геттер, чтобы получить его родительскую форму, то есть LiveData
.
Получая только LiveData
, мы можем гарантировать, что те, кто обращается к объекту LiveData
, могут только читать значения, хранящиеся внутри, без возможности их изменять.
В некотором смысле, это просто концепция того, почему вы должны использовать частные переменные с геттерами.
person
Jackey
schedule
08.02.2019
get()
. Пользователь по-прежнему может передавать данные в MutableLiveData вне DataViewModel и делать все, что он хочет. - person ror   schedule 14.08.2020