給餐廳選單加入乙個迭代器
public inte***ce iterator
boolean hasnext();
object next();
public class dinermenuiterator implements iterator
menuitem items;
int position = 0;
public dinermenuiterator (menuitem items)
public object next()
public boolean hasnext()
用迭代器改寫餐廳選單
public class dinermenu
static final int max_items = 6;
int numberofitems = 0;
menuitem menuitems;
//構造器在這裡
public iterator createiterator()
//選單的其他方法在這裡
修正女招待的**
public class waitress
pancakehousemenu pancakehousemenu;
dinermenu dinermenu;
public waitress(pancakehousemenu pancakehousemenu,dinermenu dinermenu)
public void printmenu()
privatevoid printmenu(iterator iterator)
}測試**:
public class menutestdrive
public static void main(string args)
設計模式 迭代器和組合模式
另外做為迭代器,首先你要獲取資料 構造方法 你至少要有最小的執行單位,乙個是next 來獲取下乙個資料,那隨之而來就需要判斷下乙個是否存在,需要hasnext 方法,再加remove 方法。並且聚合物件要實現迭代器介面,這樣客戶端就可以針對介面程式設計,還要需要返回乙個迭代器方法,把聚合物件傳入進去...
設計模式之迭代器和組合模式
迭代器模式 1 簡介 迭代器模式提供一種方法訪問乙個聚合物件中的各個元素,而 不暴露其內部實現方式。1 它讓我們能夠遊走在各種聚合型別資料的每乙個元素之間,而有無需讓大家知道遊走的什麼型別的聚合,反正都能夠達到迴圈輸出元素的目的。2 它能夠把遊走的任務搬到迭代器上,而不再使用各種適合自己聚合型別的f...
設計模式 狀態模式組合模式迭代器模式
狀態模式 將物件的轉換封裝在內部組合模式 元件在內部具有特定的資料結構 使用者操作 但是不想讓得知內部的實施細節 使用者對元件的內部的物件操作 使用者操作乙個物件多型呼叫 執行時依賴 編譯是確定型別 編譯時多型 大作業的時候要求加入這個的理解 效能較好迭代器模式 獲得當前的元素 下乙個元素 開頭是否...