アサーション(assertion)Advertisement不変条件
オブジェクト内部の状態が適切に保たれていることを保証する。
例1。
final class AssertTest{
private int num; // カードの枚数
public Test(int n){
num = n;
}
// カードを引くメソッド。引数は枚数
public void getCard(int n){
assert trueCheck();
num -= n;
// 略
assert trueCheck();
}
private boolean trueCheck(){
// カードの枚数が負でなければ true
if(num > 0){
return true;
}else{
return false;
}
}
}
上の例ではカードの枚数が必ず1枚以上残っているという前程があるクラスをアサーションでチェックしている。trueCheck() メソッドはアサーションのために追加したクラス。例2
switch(userID){
case 1 : // 略
break;
case 2 : // 略
break;
case 3 : // 略
break;
default: assert false;
}
典型的なパターン。上の例では「ユーザは3人で、確実に case の処理に入るハズ」という条件で、userID によって処理を振り分けている。この場合、default 句を追加し、アサーションによる不変条件チェックを行う。簡単に言えば、絶対に処理の流れが到達しないと仮定されている場所に assert false; を挿入するということ。 Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |