リファクタリング

if文をネスト(入れ子)させずにコードを書く方法

投稿日:

if文をネスト(入れ子)させずにコーディングする1つの方法です。
私が好んで使うパターンを紹介します。

 

基本的なパターン

1.デフォルト値を設定。
2.if文は、デフォルト値と異なる場合を判定して保持する。
3.処理は最後の1回だけとする。

 

ネスト(入れ子)した例

<問題点>
・条件判定がわかりづらい。
・表示の処理が判定ケース毎にあり、修正箇所が分散している。

 

ネストしていない例

<メリット>
・デフォルト値が必ず設定される。
・条件判定(if文)で設定値を個別に設定するので、単純になる。
・処理をまとめたことで修正が局所化された。

 

まとめ

・デフォルト値で処理する値を初期化する。
・設定値が変わる場合のみを、if文で個別に判定する。
・処理を1つにすることで、余分な記述を省き、修正箇所の局所化を実現できる。

 

サンプル

-リファクタリング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

なぜelse、else ifを書かないようにすべきなのか?

  目次 結論性別を判定する例Before: else句を使用した場合After: else句を使用しない場合日本語の会話に変換すると?Aさんの説明:elseありBさんの説明:ifのみまとめ …

elseを使わないことでパフォーマンスが下がる場合の対処法

  目次 状況対処法10億回のfor文でパフォーマンス評価else 有りelse 無し結果(else無しは一定して遅い)パフォーマンス改善else 無し AND メソッド切り出しして早期リタ …

else句を使わないでコーディングする方法

ThoughtWorksアンソロジーの第5章 オブジェクト指向エクササイズで取り上げられている、 「2.else句を使わない」で私が使っている方法です。 else句を使っているパターンを、使わないパタ …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。