メソッドがあるとします
public Patient(int id)
{
----
}
IDを指定してPatientオブジェクトを返します。2つの方法でコントラクトを定義できます
- 患者が存在しない場合、メソッドは null を返します
- 患者が存在しない場合、メソッドは例外をスローします。この場合、Patient がデータベースに存在する場合は true、そうでない場合は false を返すクエリ メソッドも定義します。
どの契約を使用すればよいですか? 他の提案はありますか?
更新: このケースについてもコメントしてください... ID が割り当てられたデータベースではなく、ユーザーが UI に入力したものである場合.. SSN のように.. どちらが優れているか..
私が有効だと思うSteveからのNullパターンについてのコメント: IDが存在しなかったときにすぐに知ることが本当に役立つので、おそらくここでは良い考えではありません.
また、ここのNullパターンはやや重いと思います
Id が悪いために例外をスローすることについての Rob Wells からのコメント: 患者の名前のタイプミスが例外的な状況であるとは思わない」