Avatar
手間がかかるのは逆の意見ですね。値空間にクラス不変条件を満たさないものがあるとき、クラス不変条件をあてにしているすべてのメソッドで防御のためのバリデーションの分岐を入れる必要が出てきます。余計な分岐が入るとテストケースが増えてテストのコストが上がります。またこのバリデーションの分岐の異常系にはいる原因はコンポーネント間の仕様の不整合か実装のバグで、いずれもその時の挙動を決めないといけなくなります。実装のバグや仕様の不整合を考慮した仕様を考えるわけでかなり不毛です (edited)
9:50 PM
一般に、クラス不変条件や事前条件は厳しくすればするほど実装と検証が楽になりますしね