Anche "wrapper" e "shim"?

14

Le parole "wrapper" e "shim" sono più o meno sinonimi o c'è una distinzione, forse connotativa?

    
posta DuckMaestro 10.04.2011 - 21:46
fonte

1 risposta

26

Uno shim è tipicamente qualcosa scritto specificamente per mantenere la compatibilità all'indietro. Ad esempio, se hai due versioni di un'API, la versione 1 e la versione 2, invece di 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 base a ciò che richiede la versione 2, quindi restituisce i risultati.

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

Un wrapper è scritto dal consumatore di un'API ed è tipicamente scritto in modo che tu possa cambiare l'API sottostante senza che il resto del codice debba sapere. Ad esempio, potresti scrivere un wrapper del database in modo che tu possa parlare con MS SQL Server o Oracle, semplicemente cambiando i wrapper.

Ovviamente, come con qualsiasi terminologia, ci sono aree grigie, ma penso che le precedenti differenze coprano le principali differenze.

    
risposta data 10.04.2011 - 21:53
fonte

Leggi altre domande sui tag