Là các từ "bao bọc" và "shim" ít nhiều đồng nghĩa, hoặc có một sự phân biệt, có lẽ là ý nghĩa?
Là các từ "bao bọc" và "shim" ít nhiều đồng nghĩa, hoặc có một sự phân biệt, có lẽ là ý nghĩa?
Câu trả lời:
Một shim thường là một cái gì đó được viết riêng để duy trì khả năng tương thích ngược. Ví dụ: nếu bạn có hai phiên bản API, phiên bản 1 và phiên bản 2, thay vì duy trì phiên bản 1 độc lập với phiên bản 2, bạn có thể viết một shim chặn các cuộc gọi đến phiên bản 1 của API, dịch các tham số sang phiên bản nào 2 yêu cầu, và sau đó trả về kết quả.
Thông thường, một shim được viết bởi nhà cung cấp API, chứ không phải người tiêu dùng.
Trình bao bọc được viết bởi người tiêu dùng API và thường được viết để bạn có thể chuyển đổi API cơ bản mà không cần phải biết phần còn lại của mã. Ví dụ: bạn có thể viết một trình bao bọc cơ sở dữ liệu để bạn có thể nói chuyện với MS SQL Server hoặc Oracle, chỉ bằng cách chuyển đổi các trình bao bọc.
Tất nhiên, như với bất kỳ thuật ngữ nào, có những vùng màu xám, nhưng tôi nghĩ ở trên bao gồm những khác biệt chính.