Indirection

程序设计中的indirection也稱為參考（reference），是一種受名稱、參考或是容器指涉事物的方式。最常見的indirection是用記憶體位址處理某變數。像是用指標存取變量就是這樣的例子。一個已儲存的，可以透過double indirection存取其他物標的指標，稱為間址模式（indirection node）在較早期的電腦結構中，間址模式可以提供許多複雜的寻址模式。

indirection的另外一個例子是域名系统，可以用像是en.wikipedia.org的網址代替像208.80.154.224的IP網址。透過人類可讀的名稱可以解讀到網址，代表可以網頁的參考更容易記憶，而且當網站移到其他的伺服器時，網址不需變動。

簡介
巴特勒·蘭普森有一句著名的格言，被所引用：「我們可以透過引入另外一個間接層來解決所有問題。」（軟體工程基本定理）。
這句話中的間接層常會被抽象層取代。源自這句格言的推论，Wheeler一開始也加了一個結論：「……那些需要太多間接層的問題例外」

有一個惡搞RFC，提到：

面向对象程序设计頻繁地使用indirection，最簡單的例子是动态分派。高階indirection的例子包括代理模式的設計模式，以及代理服务器。委托（Delegation）是另一個indirection模式的精典例子。在支援動態資料類型的型別安全直譯器中，大部份變數都有一層的indirection：首先先確認變數的型態安全，再解參考指標指向的實際值。

递归数据类型常會用indirection來實現，不然一個資料型態的值裡面可會包括另一個完整的相同型態。

在用符號程式來建立數學規格時，indirection也很有用。從最簡單的例子開始，像是公式裡的變數x、y、z可以指任意數字。x、y、z也可以在其他公式中表示任意數字。這個簡單範例有其限制，因為實數有無窮多個，而在符號程式中，符號的數量是有限的。移到另一個更重要的例子，在邏輯中公式α可以指任意公式，因此也可以是β, γ, δ, ... or η→π, ς ∨ σ。若集合建構式符號寫成此式Δ={α} ，表示所有公式的集合，雖然所參考的是α，但此處有兩層的indirection，第一層是所有α的集合，第二層是集合 Δ中出現α所代表的所有公式。

相關條目

 句柄
 委托模式
 指標 (電腦科學)
 參照

 得墨忒耳定律

參考資料

Category:数据类型
Category:程序架構
Category:電腦術語
Category:一元运算