我在 Scala 中经常看到这种类型的模式(在此处找到此示例):
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)
}
}
因此,根据您获得的调用:Option[User]、List[User]、Right[User]。这个方法不错!我只是出于兴趣问这是否是最佳的?例如(这可能是一个糟糕的问题):总是返回 List[User] 来尝试泛化是否会使 API 变得更好或更糟?因此,当未找到用户或保存失败时,列表将为空。我只是好奇......关于如何改进上述“模式”的任何其他建议?
我只是想为这种风格的 API 确定一个完美的模式,有时你会得到一个实体,有时没有,有时是它们的列表。有没有“最好”的方法来做到这一点,或者每个人都扮演自己的角色?