TOPシステム開発> ロジックの実装
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第9回:アプリケーションロジックを追加する

著者:WINGSプロジェクト  佐藤治夫(株式会社ビープラウド)、
小泉守義

監修:山田祥寛   2006/8/23
前のページ  1  2  3
ロジックの実装

   今度は、占いのロジック本体をFortuneTellerクラスに実装します。UserInfoクラスを作成したときと同様に「Model」プロジェクトのコンテキストメニューから新規作成します。FortunerTeller.javaのソースコードはリスト3のとおりです。
リスト3:FortuneTeller.java
package to.msn.wings.jsf;

import to.msn.wings.jsf.model.UserInfo;

public class FortuneTeller
{
    // 占いで使う周辺機器のリスト
    private static final String[] peripherals =
    {
        " キーボード",
        " マウス",
        " ディスプレイ",
        " プリンタ",
        "USB フラッシュメモリ",
        " 外付けフロッピーディスク",
        " スキャナ"
    };

    public FortuneTeller()
    {
    }

    public String tellFortune(UserInfo info)
    {

        int magicNumber;
        // magicNumber に( 西暦* 13 + 月+ 日) を代入する。
        magicNumber = info.getBirthYear().intValue() * 13;
        magicNumber *= info.getBirthMonth().intValue();
        magicNumber *= info.getBirthDay().intValue();

        // 性別を取得し、
        // 男性ならばmagicNumber を3 で割る。
        // 女性ならばmagicNumber を11 で割る。
        if (info.getSex().equals("M"))
        {
            magicNumber /= 3;
        } else
        {
            magicNumber /= 11;
        }

        // 血液型を取得し、
        // もしA 型ならばmagicNumber に12 を足す。
        // もしB 型ならばmagicNumber に18 を足す。
        // もしAB 型ならばmagicNumber に24 を足す。
        // もしO 型ならばmagicNumber に30 を足す。
        if (info.getBloodType().equals("A"))
        {
            magicNumber += 12;
        } else if (info.getBloodType().equals("B"))
        {
            magicNumber += 18;
        } else if (info.getBloodType().equals("AB"))
        {
            magicNumber += 24;
        } else if (info.getBloodType().equals("O"))
        {
            magicNumber += 30;
        }

        // 最後に、用意されている「ラッキー周辺機器」の
        // バリエーションの数で割った余りをmagicNumber に
        // 代入する。
        magicNumber %= peripherals.length;


        return peripherals[magicNumber];
    }
}

   FortuneTellerクラスは、このとき、パッケージ名は「to.msn.wings.jsf」としてください。tellFortune()というメソッドだけを実装しています。このメソッドはUserInfoオブジェクトを与えて呼び出すと、UserInfoオブジェクトの情報を基に「占い」を行い、「ラッキー周辺機器」を返すという動作をします。なお、占い自体は適当な数値計算に基づいたもので、特別な根拠はありませんのでご了承ください。

   次回はモデルとビューの統合について解説します。

前のページ  1  2  3


著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、小泉守義 監修:山田祥寛
著者プロフィール
著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、
小泉守義
監修:山田祥寛

WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。


INDEX
第9回:アプリケーションロジックを追加する
  アプリケーションロジックの追加
  ユーザー情報Beanの作成
ロジックの実装