辞書: 契約による設計

投稿日:

契約による設計とは

ざっくりいうと、APIの提供元が、 「このようにAPIを呼んでね」という仕様を提示して、 呼び出し元がそれを守ることを前提とした設計です。

Javaでざっくりやるには

本当の定義では「事前条件」「事後条件」「不変条件」があるようですが、 例えばJavaの場合はこんな感じでやってます。

  • Javadocやアノテーションを使って満たすべき仕様を記載
  • Objects#requireNonNull()などで事前条件のチェック
    • 仕様を満たさない場合はIllegalArgumentExceptionなど非チェック例外を投げる
  • 単体テストで事後条件、不変条件をチェック

外部サイト