这是设计Scala API的良好返回类型模式吗?
发布时间:2020-12-16 19:11:12 所属栏目:安全 来源:网络整理
导读:我在 Scala中经常看到这种类型的模式( found this example here): 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() = //
我在
Scala中经常看到这种类型的模式(
found this example here):
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变得更好或更糟吗?因此,当找不到用户或保存失败时,列表将只是空的.我只是好奇……关于如何改进上述’模式’的任何其他建议? 我只是想为这种风格的API确定一个完美的模式,你有时会得到一个实体,有时却没有,有时也只有一个列表.是否有“最佳”方式来实现这一目标,还是每个人都有自己的角色? 解决方法
返回类型应该有助于阐明API的预期行为.
如果GetUser返回了List,开发人员可能会感到困惑,并想知道是否可能返回多个用户.当他们看到返回选项时,他们将立即理解预期的行为. 我曾经不得不使用一个相当复杂的API,它提供了以你描述的方式推广的CRUD操作.我发现它很难理解,模糊定义,难以使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容