¿Son "wrapper" y "shim" sinónimos?

15

¿Las palabras "envoltorio" y "calce" son más o menos sinónimos, o hay una distinción, quizás connotativa?

PatoMaestro
fuente

Respuestas:

28

Una cuña es típicamente algo escrito específicamente para mantener la compatibilidad con versiones anteriores. Por ejemplo, si tiene dos versiones de una API, la versión 1 y la versión 2, entonces, en lugar de mantener la versión 1 independientemente de la versión 2, puede escribir un calce que intercepte las llamadas a la versión 1 de la API, traduzca los parámetros a qué versión 2 requiere, y luego devuelve los resultados.

Por lo general, el proveedor de la API escribe una laminilla, en lugar del consumidor.

El consumidor de una API escribe un contenedor y, por lo general, se escribe para que pueda cambiar la API subyacente sin que el resto de su código tenga que saberlo. Por ejemplo, puede escribir un contenedor de base de datos para poder hablar con MS SQL Server u Oracle, simplemente cambiando los contenedores.

Por supuesto, como con cualquier terminología, hay áreas grises, pero creo que lo anterior cubre las principales diferencias.

Dean Harding
fuente
1
+1, el punto sobre quién lo escribe es una buena forma de explicar.
Steve