設計模式 迭代器模式 行為型

2021-07-23 22:55:02 字數 3062 閱讀 7336

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。
適用性

1.訪問乙個聚合物件的內容而無需暴露它的內部表示。
2.支援對聚合物件的多種遍歷。
3.為遍歷不同的聚合結構提供乙個統一的介面(即,支援多型迭代)。
類結構圖
head_first結構圖:
系統結構圖:
--------------------------------------
具體迭代器
-----------------------------------------
public class breakfastiterator implements iterator 

@override

public boolean hasnext()

} return false;

} @override

public object next()

}public class dinneriterator implements iterator

@override

public boolean hasnext()

} return false;

} @override

public object next()

}

--------------------------------------
抽象迭代器
--------------------------------------
public inte***ce iterator
-------------------------------------
集合
-----------------------------------------
public class breakfastmenu 

public void addmenuitem(string name, int cost, string desc)

public menuitem getmenui()

public iterator createiterator()

}public class dinnermenu

public void addmenuitem(string name,int cost,string desc)

public arraylistgetmenui()

public iterator createiterator()

}

-----------------------------------------
集合項
-------------------------------------------
public class menuitem  public menuitem(string name, int cost, string desc)  @override public string tostring()  }
-----------------------------------------
客戶
-----------------------------------------
public class waitress  public void printmenu()  public void print(iterator ite)  } }
-------------------------------
測試類
------------------------------
public class testclass  }
-------------------------------
結果
----------------------------------
menuitem [name=aa5, cost=10, desc=do the]

menuitem [name=aa6, cost=10, desc=do the]

menuitem [name=aa7, cost=10, desc=do the]

menuitem [name=aa8, cost=10, desc=do the]

-----------------------------

menuitem [name=aa1, cost=10, desc=do the]

menuitem [name=aa2, cost=10, desc=do the]

menuitem [name=aa3, cost=10, desc=do the]

menuitem [name=aa4, cost=10, desc=do the]

設計模式 行為型 迭代器模式

迭代器模式 iterator design pattern 也叫作游標模式 cursor design pattern 用來遍歷集合物件。這裡的 集合物件 也可以叫作 容器 實際上就是包含一組物件的物件,比如陣列 鍊錶 樹 圖 跳表等,迭代器模式主要是將集合物件的遍歷操作從集合類中拆分,放到迭代器中...

設計模式之迭代器模式 行為型

迭代器模式 iterator pattern 提供一種方法來訪問聚合物件,而不用暴露這個物件的內部表示,其別名為游標 cursor 所以迭代器模式是一種物件行為型。對於迭代器模式來說,乙個聚合可以有多個遍歷。在迭代器模式中,提供了乙個外部的迭代器對聚合物件進行訪問和遍歷,迭代器定義了乙個訪問聚合物件...

設計模式 行為型 4 迭代器模式

1.模式動機 3.模式結構 迭代器模式包含如下角色 將遍歷資料的行為從聚合物件中分離出來,封裝在迭代器物件中 由迭代器來提供遍歷聚合物件內部資料的行為,簡化聚合物件的設計,更符合單一職責原則 抽象迭代器示例 public inte ce iterator 具體迭代器示例 public class c...