例えば次みたいな場合なんだけどさあ、
int doUnko(int param) {
switch(param) {
case AAAA : return EX_AAAA;
case BBBB : return EX_BBBB;
default : return EX_CCCC;
}
}
int main() {
switch(doUnko(param)) {
case EX_AAAA : doAAAA();
case EX_BBBB : doBBBB();
default : doCCCC();
}
}
こんなコードって無いよな…。意味が無いと思うんだけどやれっつうんだよ…。堪らんわ…。こうするとメンテが楽になるとか言ってるけど、それって経験に全く裏付けされていないよな恐らく。
例えば AAAA が DDDD になったとするじゃん。そしたら確かに doUnko の AAAA を DDDD に直せばちゃんと動くには動くよ。でもそれをやると EX_AAAA と DDDD のソースコードレベルの不整合が起きるんだよ、それぐらい分かるよな。そして EX_AAAA を EX_DDDD に直すと、今度は呼び出し元も直さなくちゃならないんだよ。って事は呼び出し元も全部直す事になるんだよ。だから結局は、
int main() {
switch(param) {
case AAAA : doAAAA();
case BBBB : doBBBB();
default : doCCCC();
}
}
こうやった方がマシなんだよ。そうは思わんかなあ。