假设我有一个方法
public Patient(int id)
{
----
}
返回给定id的Patient对象..我可以用两种方式定义合同
我应该使用哪种合同?还有其他建议吗?
更新:请对这个案例发表评论...如果它不是一个数据库分配的ID,它是用户在UI中输入的东西..比如SSN ..那么哪一个更好..
关于Steve认为有效的Null模式的评论:这里可能不是一个好主意,因为当ID不存在时立即知道它真的很有用。
我也认为这里的Null模式会有点沉重
Rob Wells对抛出异常的评论,因为它的错误ID:我不认为患者姓名中的拼写错误是特殊情况“恕我直言
发布于 2019-06-24 15:51:08
你应该抛出异常。如果您的id
患者没有指向有效的患者,那么它来自哪里?可能发生了非常糟糕的事情。这是一个特例。
编辑:如果你做的不是基于整数的检索,比如基于文本的搜索,那么返回null
就可以了。特别是因为在这种情况下,您将返回一组结果,这些结果可能不止一个(多个患者姓名相同,出生日期相同,或者您的标准是什么)。
搜索功能应与检索功能具有不同的合同。
https://stackoverflow.com/questions/-100001286
复制相似问题