2014年11月20日木曜日

開発環境

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本 (Eric Freeman 著、Elisabeth Freeman 著、Kathy Sierra 著、Bert Bates 著、佐藤 直生 監訳、木下 哲也 翻訳、有限会社 福龍興業 翻訳、オライリージャパン)の9章(IteratorパターンとCompositeパターン: 適切に管理されたコレクション)、自分で考えてみよう(p.268)を解いてみる。

その他参考書籍

エクササイズ(p.327)

コード(BBEdit, Emacs)

PancakeHouseMenu.java

import java.util.ArrayList;

public class PancakeHouseMenu implements Menu {
    static final int MAX_ITEMS = 6;
    ArrayList<MenuItem> menuItems;

    public PancakeHouseMenu() {
        menuItems = new ArrayList<MenuItem>();
    }

    public Iterator createIterator() {
        return new PancakeHouseIterator(menuItems);
    }
}

p>PancakeHouseIterator.java

import java.util.ArrayList;

public class PancakeHouseIterator implements Iterator {
    ArrayList<MenuItem> menuItems;
    int position = 0;

    public PancakeHouseIterator(ArrayList<MenuItem> menuItems) {
        this.menuItems = menuItems;
    }

    public Object next() {
        MenuItem menuItem = menuItems.get(position);
        position += 1;
        return menuItem;
    }

    public boolean hasNext() {
        if (position == menuItems.size()) {
            return false;
        }
        return true;
    }
}

入出力結果(Terminal)

$ javac PancakeHouseMenu.java
$

0 コメント:

コメントを投稿