IT Pro

リスト1●アルゴリズムを汎化するStrategyパターン

// 天ぷらのレシピを表すインターフェイス
interface TenpraRecipe
{
    // 天ぷらを得るメソッドの定義
    void getTenpra();
}

// 1つ目のアルゴリズム
class MakeTenpura
{
    public void getTenpra()
    {
        // 自分で天ぷらを揚げるアルゴリズムを実装する
        ・・・
    }
}

// 2つ目のアルゴリズム
class BuyTenpura
{
    public void getTenpra()
    {
        // 出来合いの天ぷらを使うアルゴリズムを実装する
        ・・・
    }
}

// 料理を作ってくれる店員
class Tenin
{
    // 現在のレシピを格納するフィールド
    TenpraRecipe currentReceipe;

    // レシピを変更するメソッド
    public void setReceipe(TenpraRecipe r)
    {
        this.currentReceipe = r;
    }

    // レシピの初期値を設定するコンストラクタ
    public Tenin(TenpraRecipe r)
    {
        this.currentReceipe = r;
    }

    // 料理を作るメソッド
    public void makeFood()
    {
        // 現在のレシピで天ぷらを得る
        currentReceipe. getTenpra();
        ・・・
    }
}

このサイトについてIT Proに関するお問い合わせ/ご意見/ご感想情報提供・プレスリリース
広告について著作権リンクについて個人情報保護日経BP社へのお問い合わせ

日経BPのページへ Copyright © 1995-2005 Nikkei Business Publications, Inc. All rights reserved.
このページに掲載されている記事・写真・図表などの無断転載を禁じます。著作権は日経BP社,またはその情報提供者に帰属します。
掲載している情報は,記事執筆時点のものです。