私は本でこの引用を読みました:
コンピュータ サイエンスには、別のレベルの間接化を使用して解決できない問題はありません。
誰かがそれを説明できますか?「間接性のレベル」とはどういう意味ですか?
私が理解したことから、インダイレクションは、値自体の代わりに値のポインターを使用するための派手な名前です。これを明確にしてください。
私は本でこの引用を読みました:
コンピュータ サイエンスには、別のレベルの間接化を使用して解決できない問題はありません。
誰かがそれを説明できますか?「間接性のレベル」とはどういう意味ですか?
私が理解したことから、インダイレクションは、値自体の代わりに値のポインターを使用するための派手な名前です。これを明確にしてください。
「間接化」とは、最も広い意味で、何か他のものを使用するものを使用することです。
したがって、値の代わりに値のポインターを使用する例は、この定義に1つのレベルで適合します。ポインターは何かで、値は他の何かです。
通常、これは範囲が広いものです。
この最後の例は、おそらく、すべての「理由」を説明しています。
何かを扱うとき、それをマスターし、それをより高いレベルの抽象化に抽象化する方法を学ぶため、新しいレベルの間接化が必要になり、作業の一部を新しい API にオフロードすることで、より大きな問題をより迅速に解決できます。
インダイレクションの潜在的な大きな利点の 1 つは、カップリングの減少です。これは、物事を適切に区分する必要があるという別の言い方です。これは、多くの場合、長期にわたるテスト、保守性、および柔軟性に大きく役立ちます。
例として、アプリケーションが永続化されたデータを読み取る必要がある場合、データを読み取る場所 (および方法) に関する特定の知識をアプリケーション全体に分散させるのではなく、データを分離 (データの読み取りをメソッドに入れる) してから、アプリの各部分がそれらの詳細を処理する代わりに、アプリケーションの他のすべての部分がそのメソッドを呼び出してデータを取得できるようにします。
素晴らしい質問です。level of indirection
私は実際にデータベースコースでこの用語に出くわしました。このコースのスライドでは、「間接化」やその使用方法に関する情報さえ提供されていませんが、学生に次のような質問を投げかけます。
... suppose the file is unordered by the non-key field DEPTNUMBER and we want to construct a secondary index on DEPTNUMBER with one level of indirection that stores record pointers.
言及されたあなたの理解は、微妙なことを私に明らかにします:
From what I understood, indirection is a fancy name for using a pointer of a value instead of the value itself.
ここで、説明のために質問に写真を添付します。いわゆるは、と の間のブリッジであるlevel of indirection
を含むメモリのブロックに他なりません。したがって、ここでは、データ ファイル内のレコードごとに 1 つのインデックスを持つ代わりに、 によって構成される追加のレイヤーを使用して、インデックス ファイルと間接レベル (レコード ポインターのブロック) の間のインデックスを疎にします。そして、これについての私の理解は、データファイルの密なインデックスと同様に疎な(密でない)インデックスを持つことにより、メモリ使用量とルックアップ速度の間の適切なトレードオフを提供することです.pointers
indexes
data
pointers
unordered
残念ながら、私の学校のスライドはただのゴミですが、インターネット上のlevel of indirection
データベースへの実装に関して、この用語の適切な説明を見つけることができませんでした(それをカバーしていませんが、彼らはそれについて質問しています)。
良いソースがある場合、またはここで何か間違っている場合はコメントしてください。本当に感謝しています!