はsetValue()
とpostValue()
の方法を公開することによってのみLiveData
と異なり、LiveData
では保護されているように見えます。なぜLiveDataの別個のMutableLiveDataサブクラスがありますか?
この変更のために別のクラスを作成し、単にそれらをLiveData
自体にpublicとして定義するのはなぜですか?
一般的に言えば、よく知られている慣習であり、有用である可能性のあるシナリオは何か(すべてのコードにアクセスできると仮定した場合)は、継承(あるメソッドの可視性を唯一の変更とします) ?
デザイン意思決定です。クライアントが内部状態を変更することができないので、 'LiveData'は不変です。したがって、スレッドセーフです – Blackbelt