我注意到很多迭代器或數據讀取器只是像DataReader,XmlReader,IEnumerator,任何更多(你有這個想法)。爲什麼只有大部分時間纔會遍歷?
所以簡單地問他們爲什麼他們只轉發通常當我創建一個數據迭代器爲我的自定義需要我通常嘗試添加對導航雙方的支持。我同意大多數時候我們不需要反向遍歷,但有時候我們確實需要,所以最終我們需要創建temp
變量或某些東西來保存數據。
所以我的問題是:
爲什麼大多數數據迭代器只向前
我錯了創造一個落後穿越的迭代器/數據讀取器。如果不是爲什麼框架沒有爲其內置的數據迭代器提供這種支持。
我們有任何嚴重性能缺點或者它只是不視爲好的設計有這樣的功能。
這個問題已經竊聽了我很多,從開始,但一直沒有得到滿意的答覆,所以我要求它做這兒過得相信很多開發商可能會同意我的說法向後遍歷可能是有用的,有時。
在這種情況下,你肯定是正確的,但即使從一個大文件中讀取數據,如果我們稍微向後讀一點,可能會出現問題。邏輯將像是將指針反向移動一些,然後再讀取。當然我們需要編寫更多的代碼......所以在這種設計中會出現什麼問題呢? –
那麼這個想法是有一個通用的基本方法,適用於(基本上)的一切。沒有什麼能阻止你在特殊情況下使用其他訪問方案(如向後讀取或隨機訪問) – Foxfire
基本SRP :)。不要將非必要的功能添加到對象。另外 - 我喜歡子彈4.如果你需要它,很容易添加緩衝。 – Goran