"Indirection" utilizza qualcosa che utilizza qualcos'altro, nel suo senso più ampio.
Quindi il tuo esempio, utilizzando un puntatore di un valore anziché il valore, si adatta a questa definizione a un livello. Il puntatore è il qualcosa e il valore è qualcos'altro.
In genere questo è qualcosa di più grande portata:
- Utilizzo di un sito web per visualizzare graficamente i dati generati da un servizio basato su XML. Qui il sito web è il qualcosa che si nasconde dietro di esso è il dato che è qualcos'altro.
- Utilizzo di un sistema operativo per accedere allo schermo del display. Qui ci sono due livelli, almeno di indiretta. Il sistema operativo utilizza il driver dello schermo. Qualcosa usando un altro. Quindi il driver dello schermo parla direttamente con l'hardware dello schermo causando piccoli punti di luce qua e là. Il driver è il prossimo qualcosa che usa qualcos'altro che è l'hardware.
- Non è raro che una API gestisca qualcosa di alto livello e che l'API si occupi della stessa cosa a un livello inferiore. Di nuovo un livello di riferimento indiretto viene aggiunto in cima all'API di basso livello e noi la chiamiamo la nuova API migliorata.
Quest'ultimo esempio, forse, spiega il "perché" di tutto.
Mentre lavoriamo con qualcosa lo padroneggiamo e impariamo come estenderlo a un livello più alto di astrazione, quindi è necessario un nuovo livello di riferimento indiretto e possiamo risolvere più velocemente i problemi più grandi scaricando parte del lavoro nella nuova API .
fonte
2013-08-01 20:15:55
Hai dimenticato il resto della frase "... eccetto troppi livelli di risoluzione indiretta" –
Penso che abbia a che fare con l'astrazione di livelli di dati in oggetti e la gestione del problema a vari livelli di astrazione (in oggetti diversi, forse, nel paradigma OOP.) – Houdini
possibile duplicato di [Livello di Indirection risolve ogni problema] (http://stackoverflow.com/questions/288623/level-of-indirection-solves-every-problem). Vedi anche [Qual è la differenza tra livello di astrazione e livello di riferimento indiretto?] (Http://programmers.stackexchange.com/q/111756), e [il resto del web] (http: // www.google.com/search?q=there+is+no+problem+that+cannot+be+solved+with+another+level+of+indirection). –