一時変数の問題点
ある一連の処理を実現するために、一時変数を作成することがあると思います。
しかし、一時変数を作成することは以下のようなデメリットがあります。
- 命名コストがかかる
- 処理の途中の変数は変な命名になりがちで、可読性を損なう
このような場合、メソッドチェーンを利用することで一時変数を作成する必要がなくなります。
一時変数をなくすことで無駄な命名を省略でき、コードが美しく
なります。
もちろん、一時変数が有効な場合もあるので、適宜使い分ける必要があります。
使用例
一時変数をメソッドチェーンで置き換えた使用例を示します。
コードは以下のことをしています。
- 引数から受け取った文字列を
,
で分割し、配列に格納 - 配列内の各文字列の前後の空白を削除し、1文字目を大文字に変換
- 変換した文字列を最終的に
cityNamesWithoutSpace
に格納 cityNamesWithoutSpace
内に文字が含まれていなければ、空配列を返し、そうでなければそのまま返す
|
|
コードを見てわかる通り、無駄な変数が多くて可読性が悪いですね。
このコードをメソッドチェーンを利用することで以下のようにリファクタすることができます。
|
|
map
を利用してメソッドチェーンを実現することで、一時変数が不要になりコードがスッキリしましたね。
また、リファクタに伴いcapitalized
をprefix(1).uppercased()
+ dropFirst().lowercased()
に修正しました。
まとめ
一時変数の作成は、命名コストがかかり、可読性を損なうことがある。
そのような場合にメソッドチェーンを利用することで、命名コスト、一時変数の作成を省略でき、可読性を向上させることができる。