定義:迭代器模式
(iterator pattern)
:提供一種方法來訪問聚合物件,而不用暴露這個物件的內部表示
模式動機
:在迭代器模式中,提供乙個外部的迭代器來對聚合物件進行訪問和遍歷,迭代器定義了乙個訪問該聚合元素的介面,並且可以跟蹤當前遍歷的元素,了解哪些元素已經遍歷過而哪些沒有。
優點
:它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有**
,滿足「開閉原則」的要求。
缺點
:由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。
適用環境
:訪問乙個聚合物件的內容而無須暴露它的內部表示。
需要為聚合物件提供多種遍歷方式。
為遍歷不同的聚合結構提供乙個統一的介面
C 電視機與遙控器(友元類)
時間限制 1 sec 記憶體限制 128 mb 提交 328 解決 121 提交 狀態 討論版 有如下的電視類和遙控器類,遙控器可以控制電視。要求如下 1.實現並完善 tv類 2.將 remote 設為tv 的友元類,以支援在 remote 類中對tv 方法的呼叫。3.在 main 函式中,通過 r...
電視機頂盒遙控器可以同時遙控電視和機頂盒
電視機頂盒遙控器可以同時遙控電視和機頂盒,前提是要去設定一下機頂盒的遙控器。機頂盒的遙控器一般都有乙個學習功能,可以學習電視遙控的開機和音量加減的功能。一般電視遙控的功能就是開機和音量增減的功能比較常用,我們可以把這兩個功能通過機頂盒遙控的學習功能,學習到機頂盒遙控器中,這樣用乙個機頂盒遙控器就可以...
遙控器中斷
我們以4.9.44版本核心的ir遙控器為例。使用cat proc interrupts命令 其中橫向,第一列是中斷號,第二列是各中斷在cpu中發生的次數,gicv2 是中斷控制器的名稱,第三列也是中斷邏輯號,第四列是驅動註冊的中斷名稱。例如 中斷號 130 對應的就是遙控器的中斷。vendor ms...