あるAPIサーバへのリクエストの結果をseald classで以下のように表現しています。
Kotlin
1sealed class ArticleResult { 2 data class Ok(val article: Article) : ArticleResult() 3 data class Error(val message: String) : ArticleResult() 4}
現状はこのResultクラスをエンドポイントごとに用意しています。
Kotlin
1// /api/article 用 2sealed class ArticleResult { 3 data class Ok(val article: Article) : ArticleResult() 4 data class Error(val message: String) : ArticleResult() 5} 6 7// /api/category 用 8sealed class CategoryResult { 9 data class Ok(val category: Category) : CategoryResult() 10 data class Error(val message: String) : CategoryResult() 11} 12 13// /api/user 用 14sealed class UserResult { 15 data class Ok(val user: User) : UserResult() 16 data class Error(val message: String) : UserResult() 17}
ある程度形が同じなので共通の概念を持たせて、それを継承させるようにしたいのですが、どうすればうまくできますでしょうか?
共通の概念としては
- OkクラスとErrorクラスのみ持つ
共通でない概念としては
- Okクラスの中身はそれぞれ異なる
といった感じです。
これ参考になるかも?
https://note.com/yasukotelin/n/n6d9e352c344c
回答1件
あなたの回答
tips
プレビュー