Open3
BaseXXXクラスを作ることについて
BaseXXXクラスは、XXXクラスの責務から外れていない + ただのシンタックスシュガーである場合に、有用であると思っています。言い換えると「2行以上必要だったコードが、1行になる
」、「乱雑なコードがまとまる」などです。
AndroidでBaseViewModelを作るとしたら、「LiveData関連のコード量が減る、シンプルになる」、「UiState関連のコードがシンプルになる」、などがBaseViewModelの用途として考えられます。
ただし、BaseXXXを作る前に、拡張関数で事足りる場合はそちらのほうが良いです。protectedなどの、visibility modifiersが絡まない場合は、拡張関数で表現できると思います。
明らかなbad patternとしては、BaseXXXへの型キャストが必要になるケースです。