假设我有一个方法
public Patient(int id)
{
----
}
返回给定 id 的 Patient 对象。我可以通过 2 种方式定义合同
- 如果患者不存在,方法将返回 null
- 如果患者不存在,方法将抛出异常。在这种情况下,我还将定义一个查询方法,如果患者存在于数据库中则返回 true,否则返回 false...
我应该使用哪个合约?还有其他建议吗?
更新:请也对此案例发表评论...如果它不是数据库分配的 Id 并且它是用户在 UI 中输入的内容 .. 像 SSN .. 那么哪个更好..
我认为来自 Steve 的关于 Null 模式的评论是有效的:这里可能不是一个好主意,因为当 ID 不存在时立即知道会非常有用。
而且我也认为这里的 Null 模式会有点重
Rob Wells 关于抛出异常的评论,因为它的 ID 错误:我不认为患者姓名中的拼写错误是一种特殊情况”恕我直言