2.制御フラグの削除

2020-11-24

こんにちは管理人(@vip___p)です。

今回はリファクタリング/制御フラグの削除について触れていこうと思います。

リファクタリングについては下記の記事で簡単にまとめているので是非参考にしてください。

下記のような方は是非参考にしてください。

  • Java初学者
  • リファクタリングについて興味がある方

書籍:[Java言語で学ぶリファクタリング入門]
制御フラグの削除について触れていきます。

制御フラグの削除

man

制御フラグとはそもそもどういったものか簡単に確認していきましょう。

現在のプログラミングの状態を確認するとこに使用されていることが多々あります。

flag = false;
if(){
flag = true;
}

ただ使い過ぎは良くないよと言うのが今回の話です。

使いすぎると処理や状態ががかえってわかりにくくなるからそれを改善していきましょう。

制御フラグを見つけたら

制御フラグを見つけたら

returnやcontiue/breakに置き換えることができるかもしれません。

break文を使用する場合

参考書籍ではfoundに変更されています。

見つかったという過去形で少し意味がとらえやすくなったと紹介されています。

flagが何を指しているかわからないので適切な変数名に置き換える必要があります。

boolean found = false; 
if(条件式){ 
  found = true; 
  break; 
} 
return found;

上記のコードでは条件式に通過したら、値が見つかった。

通過しなかったら見つからなかったという処理です。

ですがreturn文のほうが意味が分かりやすく、

制御フラグそのものを削除できる可能性が高いです。

return文を使用する場合

if(条件式){
  return true;
}
return false;

このコードの方が記述が少なくスッキリしたと思います。

ポイントはreturn文が複数あり、出口も複数存在する点です。

処理の出口は1つと思いがちですが、複数あってもよくプログラミングの視野が広がります。

制御フラグを削除するメリット

メリットは2つです。

  • 視野が広がる
  • コードが見やすくなる

視野が広がる

先ほども述べたように視野が広がります。

return文で出口を複数もうけることで無駄な記述が減り

プログラミングの幅が広がります。

コードが見やすくなる

処理が一目でわかります。

制御フラグが存在すると全体を見る必要がありますが

break/return文だと、その後の処理を確認する必要がなく良くなります。

またフラグ名により何の処理かわかりにくい場合などもあるので注意が必要です。

まとめ

まとめ

簡単にですが制御フラグの削除するメリットを紹介しました。

皆さんの参考になれば幸いです。