คำว่า "wrapper" และ "shim" ตรงกันไหม?


15

คำว่า "wrapper" และ "shim" มีความหมายเหมือนกันมากหรือน้อยหรือมีความแตกต่างซึ่งอาจเป็นความหมายแฝง

คำตอบ:


28

shim เป็นสิ่งที่เขียนโดยเฉพาะเพื่อรักษาความเข้ากันได้ย้อนหลัง ตัวอย่างเช่นหากคุณมี API สองเวอร์ชันคือเวอร์ชัน 1 และเวอร์ชัน 2 แทนที่จะเก็บรักษาเวอร์ชัน 1 เป็นอิสระจากเวอร์ชัน 2 คุณอาจเขียนshimที่ขัดขวางการเรียกไปยังเวอร์ชัน 1 ของ API แปลพารามิเตอร์เป็นเวอร์ชันใด 2 ต้องใช้แล้วส่งคืนผลลัพธ์

โดยทั่วไปแล้ว shim ถูกเขียนโดยผู้ให้บริการของ API แทนที่จะเป็นผู้บริโภค

wrapper นั้นเขียนโดยconsumerของ API และโดยทั่วไปแล้วจะถูกเขียนเพื่อให้คุณสามารถสลับ API พื้นฐานโดยไม่ต้องรู้ว่าโค้ดที่เหลืออยู่ของคุณ ตัวอย่างเช่นคุณอาจเขียน wrapper ฐานข้อมูลเพื่อให้คุณสามารถพูดคุยกับ MS SQL Server หรือ Oracle เพียงแค่สลับ wrappers

แน่นอนเช่นเดียวกับคำศัพท์ใด ๆ มีพื้นที่สีเทา แต่ฉันคิดว่าข้างต้นครอบคลุมความแตกต่างที่สำคัญ


1
+1 ประเด็นที่ว่าใครเป็นคนเขียนมันเป็นวิธีที่ดีในการอธิบาย
Steve
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.