どうも、スィンです。
「リファクタリングはちゃんと勉強してデザインパターンを使ったりしてやらなければならない!」
と構えずに、まずは単純なところ、小さいところ、影響範囲が少ないところから着手していくのがお勧めです。
では、例文から紹介します。func1() がif版、func2() が三項演算子版、func3() がリファクタリングしたものです。
[code lang=”java” collapse=”false”] package net.sinrpoject.lesson;public class Sample {
public static final String TEXT_OK = "OK";
public static final String TEXT_NG = "NG";
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(func1(TEXT_OK));
System.out.println(func2(TEXT_OK));
System.out.println(func3(TEXT_OK));
System.out.println(func1(TEXT_NG));
System.out.println(func2(TEXT_NG));
System.out.println(func3(TEXT_NG));
}
public static boolean func1(String value) {
if (TEXT_OK.equals(value)) {
return true;
}
else {
return false;
}
}
public static boolean func2(String value) {
return (TEXT_OK.equals(value)) ? true : false;
}
public static boolean func3(String value) {
return (TEXT_OK.equals(value));
}
}
[/code]
func1() や func2() では条件式の結果が「真」の場合に「true」を返し「偽」の場合に「false」を返していますが、この場合は条件式の結果をそのまま return すれば良いのでこれらの書き方は冗長です。
わかっている人は絶対やらない書き方で「何を今更!こんなの常識!」と言われそうですが、昔も今も結構このようなコードを見ます。「自分これ書いてる!」って人は注意してください。「見たことある!」って人は、相手のプライドを傷つけないように喧嘩にならないように最大限注意してうまく指摘してあげてください。
今回はここまで!
ではでは!
弊社では、「さらに高みを目指したいエンジニア」を育てる環境を用意しています。
株式会社 #sinProject CEO/CTO
Twitterアプリ1位 #Tweecha2 企画制作
サービス・システム設計開発、コンサルタント
#sinPro式学習 #Svelte #TypeScript #Flutter #Dart #Java #HTML #CSS
#kimurakan ピアノ弾き語り