私はScalaでかなり頻繁にこの種のパターン(found this example here)を参照してください。これはスカラAPIを設計するための良いリターン型パターンですか?
class UserActor extends Actor {
def receive = {
case GetUser(id) =>
// load the user, reply with None or Some(user)
val user: Option[User] = ...
sender ! user
case FindAll() =>
// find all users
val users: List[User] = ...
sender ! users
case Save(user) =>
// persist the user
sender ! Right(user)
}
}
だから、あなたが得るの呼び出しに応じて、[ユーザー]、リストの[ユーザー]、右[ユーザー]オプション。このアプローチは大丈夫です!これが最適であれば、私はただ関心を寄せているだけですか?例えば、(これは悪いことかもしれません):常にList [User]を返すことで、APIを改善して一般化しようとしますか?したがって、ユーザーが見つからない場合や保存が失敗した場合、リストは単に空になります。私はちょうど好奇心が強い....上記のパターンがどのように改善されるかについての他の提案は?
私はちょうど1つのエンティティを取得する場合があり、場合によってはそれらを取得しない場合もあります。これを行うための「最良の」方法はありますか、あるいは誰もが自分自身の役割を果たしていますか?
リストは空にすることができます。[0,1]、[0、n]のリストに制約すると、オプションはいいです。 –