多くのイテレータやデータリーダーは、DataReader、XmlReader、IEnumerator、さらに多くのものがあります。(あなたはアイデアを得ました)です。ほとんどの場合、トラバーサル転送のみがなぜですか?
forward-only通常、自分のニーズに合わせてデータイテレータを作成するときは、通常、両サイドのナビゲーションのサポートを追加してみてください。ほとんどの場合、逆方向のトラバースは必要ありませんが、時には必要があるため、必要なときにデータを保持するために変数または何かを作成することになります。
だから私の質問は以下のとおりです。
はなぜほとんどのデータ・イテレータ前進のみ
iは後方たどれるイテレータ/データリーダーを作成する間違っています。どうしてフレームワークが組み込みのデータイテレータをサポートしていないのでしょうか?
は、我々はすべての深刻パフォーマンスの欠点またはそのわずかないは、このような機能を持って良いデザインを検討しています。
この質問は私に最初から多くのことを盗聴が、私はhere.I多くの開発者は、後方トラバースは時々役立つことができることを私と一緒に同意することができると信じていないことを求めているので、満足のいく答えを得たことがありません。
あなたはそのシナリオに間違いありませんが、大きなファイルからでもデータを読み込んでいる間は、少し後ろに読むと問題になることがあります。ロジックはポインタをいくつかのビットに戻して再度読み込むようなものになります。もちろん、もう少しコードを書く必要があります。だからこのデザインで何がうまくいかないのでしょうか? –
よく考えてみましょう(基本的に)すべてのために働く1つの一般的な基本的なアプローチを持つことです。特殊なシナリオ(逆方向読み込みやランダムアクセスなど)で他のアクセス方式を使用できないようにするものはありません – Foxfire
基本SRP :)。オブジェクトに必須ではない機能を追加しないでください。また、 - 私は弾丸4が好きです。必要に応じて、バッファリングを追加するのは簡単です。 – Goran