Sind die Wörter "wrapper" und "shim" mehr oder weniger synonym, oder gibt es einen Unterschied, vielleicht konnotativ?
quelle
Sind die Wörter "wrapper" und "shim" mehr oder weniger synonym, oder gibt es einen Unterschied, vielleicht konnotativ?
Ein Shim ist normalerweise etwas, das speziell für die Aufrechterhaltung der Abwärtskompatibilität geschrieben wurde. Wenn Sie beispielsweise über zwei Versionen einer API, Version 1 und Version 2, verfügen und Version 1 nicht unabhängig von Version 2 verwalten möchten , schreiben Sie möglicherweise einen Shim , der Aufrufe von Version 1 der API abfängt und die Parameter in welche Version übersetzt 2 erfordert, und gibt dann die Ergebnisse zurück.
In der Regel wird ein Shim nicht vom Consumer, sondern vom Provider der API geschrieben.
Ein Wrapper wird vom Konsumenten einer API geschrieben und ist normalerweise so geschrieben, dass Sie die zugrunde liegende API wechseln können, ohne dass der Rest Ihres Codes dies wissen muss. Beispielsweise können Sie einen Datenbank-Wrapper schreiben, um mit MS SQL Server oder Oracle zu kommunizieren, indem Sie einfach den Wrapper wechseln.
Natürlich gibt es, wie bei jeder Terminologie, Grauzonen, aber ich denke, die obigen Ausführungen decken die Hauptunterschiede ab.