設計模式 迭代器和組合模式

2021-06-27 00:29:40 字數 899 閱讀 7417

給餐廳選單加入乙個迭代器

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...

設計模式 狀態模式組合模式迭代器模式

狀態模式 將物件的轉換封裝在內部組合模式 元件在內部具有特定的資料結構 使用者操作 但是不想讓得知內部的實施細節 使用者對元件的內部的物件操作 使用者操作乙個物件多型呼叫 執行時依賴 編譯是確定型別 編譯時多型 大作業的時候要求加入這個的理解 效能較好迭代器模式 獲得當前的元素 下乙個元素 開頭是否...