条件分岐の距離・Javaソースコードの書き方

if文とelse文の距離

距離

if文とelse文の距離は?

条件分岐の距離の例として、if文とelse文の距離についてお話したいと思います。
if文とelse文の距離が近いほど、if文の分岐処理を一覧できます。よって、「処理の流れ」がわかりやすいと思います。

if文とelse文の例

以下に「if文とelse文の距離が近い場合」について、例を示します。
プログラムの詳細を理解する必要は、ありません。

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){

    TimesheetForm timesheetForm = (TimesheetForm)form;
    String action = timesheetForm.getAction();

    if (action.equals("init")){
        //TimesheetFormに初期値を設定するため、
        //timesheetAction.do?action=init が必要
        //timesheetFrame.htmlから、ここを呼び出す
        return this.init(mapping, timesheetForm, request, response);
    }
    else if (action.equals("update")){
        return this.update(mapping, timesheetForm, request, response);
    }
    else if (action.equals("show")){
        return this.show(mapping, timesheetForm, request, response);
    }
    else{
        throw new IllegalArgumentException("invalid action=" + action);
    }
}

最初のif文から最後のelse文まで、15行ほどになっています。
距離が近いので、次のようにif文の分岐処理を理解できるでしょう。

  • 変数actionが、”init”の場合
    初期化処理をする。
  • 変数actionが、”update”の場合
    更新処理をする。
  • 変数actionが、”show”の場合
    表示処理をする。
  • 変数actionが、その他の場合
    変数actionは無効な値である、という例外を通知する。

この例では、if文からelse文までの距離を短くするため、それぞれの場合で行なう処理を、一つのメソッドにまとめています。

if文の分岐処理をわかりやすくするために、このようにメソッドを呼び出した場合、メソッド内の処理は隠蔽されています。例えば変数actionが”show”の場合に呼び出すメソッドshow(…)については、表示処理の詳細(ソースコード)はわかりません。

しかしこの場合では、メソッドshow(…)内の処理をわかりやすくするよりも、if文の「分岐処理のわかりやすさ」を優先しています。

※この記事は、2003年6月当時の記事になります。

コンピューター
この記事をシェアする

グッズ・メモランダム