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