"Wrapper" e "shim" sono sinonimi?


15

Le parole "involucro" e "shim" sono più o meno sinonimi, oppure esiste una distinzione, forse connotativa?

Risposte:


28

Uno shim è in genere qualcosa di scritto appositamente per mantenere la compatibilità con le versioni precedenti. Ad esempio, se hai due versioni di un'API, la versione 1 e la versione 2, quindi anziché mantenere la versione 1 indipendentemente dalla versione 2, potresti scrivere uno shim che intercetta le chiamate alla versione 1 dell'API, traduce i parametri in quale versione 2 richiede, quindi restituisce i risultati.

In genere, uno shim viene scritto dal provider dell'API, anziché dal consumatore.

Un wrapper è scritto dal consumatore di un'API ed è in genere scritto in modo da poter cambiare l'API sottostante senza che il resto del codice lo sappia. Ad esempio, è possibile scrivere un wrapper di database in modo da poter parlare con MS SQL Server o Oracle, semplicemente cambiando wrapper.

Naturalmente, come con qualsiasi terminologia, ci sono aree grigie, ma penso che quanto sopra copre le principali differenze.


1
+1, il punto su chi lo scrive è un buon modo di spiegare.
Steve,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.