Open3

BaseXXXクラスを作ることについて

stsnstsn

BaseXXXクラスは、XXXクラスの責務から外れていない + ただのシンタックスシュガーである場合に、有用であると思っています。言い換えると「2行以上必要だったコードが、1行になる
」、「乱雑なコードがまとまる」などです。

AndroidでBaseViewModelを作るとしたら、「LiveData関連のコード量が減る、シンプルになる」、「UiState関連のコードがシンプルになる」、などがBaseViewModelの用途として考えられます。

stsnstsn

ただし、BaseXXXを作る前に、拡張関数で事足りる場合はそちらのほうが良いです。protectedなどの、visibility modifiersが絡まない場合は、拡張関数で表現できると思います。

stsnstsn

明らかなbad patternとしては、BaseXXXへの型キャストが必要になるケースです。