Il semble que MutableLiveData
diffère de LiveData
seulement en rendant les méthodes setValue()
et postValue()
publiques, alors qu'en LiveData
elles sont protégées.Pourquoi existe-t-il une sous-classe MutableLiveData distincte de LiveData?
Quelles sont les raisons de créer une classe distincte pour cette modification et ne pas simplement définir ces méthodes comme publiques dans le LiveData
lui-même?
En général, une telle forme d'héritage (augmentant la visibilité de certaines méthodes étant le seul changement) est une pratique bien connue et quels sont les scénarios où cela peut être utile (en supposant que nous ayons accès à tout le code) ?
C'est une décision de conception. 'LiveData' est immuable, car le client ne peut pas changer l'état interne, donc thread-safe – Blackbelt