if や三項演算子の結果を true や false と定義しないこと 1


どうも、スィンです。

「リファクタリングはちゃんと勉強してデザインパターンを使ったりしてやらなければならない!」

と構えずに、まずは単純なところ、小さいところ、影響範囲が少ないところから着手していくのがお勧めです。

では、例文から紹介します。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 すれば良いのでこれらの書き方は冗長です。

わかっている人は絶対やらない書き方で「何を今更!こんなの常識!」と言われそうですが、昔も今も結構このようなコードを見ます。「自分これ書いてる!」って人は注意してください。「見たことある!」って人は、相手のプライドを傷つけないように喧嘩にならないように最大限注意してうまく指摘してあげてください。

今回はここまで!
ではでは!

自分も使う人も毎日楽しくなるアプリを制作。趣味は楽器演奏、映画・アニメ・ドラマ鑑賞とゲーム。

Windowsアプリ、Webアプリ、クラウドシステム構築などの業務システムエンジニアとして15年以上の経験を積んで独立。

システムやアプリ制作、Webサイト構築等のご相談、取材依頼は「お問い合わせ」からご連絡下さい。アプリを一緒に作りたいエンジニア、デザイナーさんは @iam_o_sin までご連絡下さい。

0

Leave a comment

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

*

One thought on “if や三項演算子の結果を true や false と定義しないこと