契約プログラミング
「契約による設計」(DbC)において、クライアントとサプライヤに課されるメソッド呼び出しの事前条件および事後条件は、クライアントとサプライヤとの間の契約に喩えられる。一般の契約と同様に DbC における契約は、クライアントとサプライヤの遵守すべき義務 (obligation) と義務を遵守することで得られる利益 (benefit) を記述したものと捉えられる。
クライアントの義務と利益は:
クライアントの義務:メソッド呼び出し時に事前条件を満たすこと
クライアントの利益:メソッド終了時に事後条件を満たした状態が得られること
一方、サプライヤの義務と利益は:
サプライヤの義務:メソッド終了時に事後条件を満たすこと
サプライヤの利益:事前条件を満たした状態でメソッドが呼び出されること
である。 サプライヤは事前条件を満たすことをクライアントに課すことで、メソッド本体に冗長な検査を記述することを避けられる。