契約の継承とは? わかりやすく解説

契約の継承

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/28 09:17 UTC 版)

契約プログラミング」の記事における「契約の継承」の解説

クラスモジュール見た場合クラス開放/閉鎖原則にしたがって設計されるべきである。すなわち、クラスインタフェース仕様安定していて、クライアントから見た振る舞い変わらないようにしなければならない一方で将来的機能の追加仕様変更受け入れられなければならない後者モジュール開放性実現するための方法一つとしてクラス継承がある。 「契約による設計」(DbC)では、クラスインスタンス抽象的な振る舞い (behaviour) を不変条件と各メソッド事前条件および事後条件として定義するDbC に従ってプログラミングする際、クライアントは、事前条件満たせ事後条件満たす状態が得られること期待して、サプライヤクラスのエンティティ記述することになる。一方でポリモーフィズム多相性)のため、クライアント記述したサプライヤクラスそれ自身が常に実装提供するとは限らずプログラム実行時には動的束縛されたサブクラスインスタンス実装利用され得る。 サブクラスインスタンス振る舞い前述通りサブクラス自身不変条件および各メソッド事前条件事後条件によって定義されるが、一方でサブクラスインスタンスクライアント継承元のスーパークラス契約拘束されスーパークラスインスタンスとしても振る舞えなければならないリスコフの置換原則)。したがってクライアント継承元のスーパークラスの間の契約実現するため、サブクラススーパークラス不変条件を常に満たさなければならず(したがってサブクラス不変条件自身不変条件すべてのスーパークラス不変条件論理積となる)、またサブクラス事前条件スーパークラス事前条件より弱く(または等しく)、サブクラス事後条件スーパークラス事後条件より強く(または等しくなければならない。 ここで、「条件 A が条件 B より強い」とは、A が成り立つなら B も必ず成り立ち、逆は成り立たないことを言う。例えば、実数 x に対して x > 2 が成り立つなら常に x > 0 が成り立つが、逆は成り立たない。この場合実数 x に対す条件 x > 2 は条件 x > 0 より強い、と言える他方条件 A が条件 B より弱い」とは、B が A より強いことを指す。

※この「契約の継承」の解説は、「契約プログラミング」の解説の一部です。
「契約の継承」を含む「契約プログラミング」の記事については、「契約プログラミング」の概要を参照ください。

ウィキペディア小見出し辞書の「契約の継承」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「契約の継承」の関連用語

契約の継承のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



契約の継承のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの契約プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS