ܖʹΑΔઃܭ
• 合理的な仮定を明確にするテクニック.
• あるメソッドについての事前条件と事後条件を決めておくことによって,そのメソッドを利⽤する⼈が
必要としている振る舞いを知る事ができる.
• 事前条件: そのメソッドを実⾏する前に成⽴していなければいけない条件
• 事後条件: メソッドが終了したときに成⽴していなければならない条件
• 基本クラスをインタフェースにした場合に,クライアントが理解しているのは基本クラスの事後条件と
事前条件のみ
• 派⽣クラスの事前条件は基本クラスに課せられている事前条件より強くしてはいけない.
• 派⽣クラスの事後条件は基本クラスの事後条件より弱くしてはいけない.
Square::setWidthはRectanbleより事後条件が弱い.よって設計契約に反する.
-> 振る舞いの同等性が担保されていない
10