ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーションの第5章 オブジェクト指向エクササイズで取り上げられている、
「2.else句を使わない」で私が使っている方法です。
else句を使っているパターンを、使わないパターンに変える例で示します。
目次
else句を使っているパターン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int code = 1; String codeName; if(code == 1) { codeName = "AAA"; }else if(code == 2) { codeName = "BBB"; }else if(code == 3) { codeName = "CCC"; }else { codeName = "other"; } System.out.println("codeName is " + codeName); |
よく見る書き方です。
コード値のパターンが増えたらelse句も増える書き方です。
else句を使わないパターン①
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int code = 1; String codeName; codeName = "other"; if(code == 1) { codeName = "AAA"; } if(code == 2) { codeName = "BBB"; } if(code == 3) { codeName = "CCC"; } System.out.println("codeName is " + codeName); |
最初に何も一致しないパターン(デフォルト値)で初期化します。
ここではOtherです。
そのあと、該当するコード値があれば上書きすればOKです。
コード値のパターンが増えてもifを1行追加するだけで済みます。
else句を使わないパターン②
1 2 3 4 5 6 7 8 9 |
int code = 1; String codeName; codeName = "other"; if(code == 1) codeName = "AAA"; if(code == 2) codeName = "BBB"; if(code == 3) codeName = "CCC"; System.out.println("codeName is " + codeName); |
{}内が1行だけならば、{}は省略できます。
こうすると、さらに見やすくなります。
メリット
1つのif文が独立しているので、判定条件の追加と削除が簡単になります。
まとめ
else句を使わないコーディング方法は、以下の2点。
①デフォルト値で初期化する。
②該当するパターンで上書く。
コメント