2012-03-01 31 views
14

Tôi đang phát triển một ứng dụng cần phải làm việc với các phiên bản không tương thích khác nhau của một số thư viện. Bản năng ruột của tôi đã giới thiệu một bộ điều hợp giữa ứng dụng và thư viện sẽ có đối tượng thích hợp của thư viện được tiêm vào nó. Sau đó, ai đó nói với tôi về shims. Không có nhiều tài liệu về nó.Sự khác nhau giữa mẫu thiết kế mặt cắt và mặt tiền/bộ điều hợp là gì?

Tôi muốn biết các miếng chêm khác nhau như thế nào so với mẫu thiết kế mặt tiền và bộ điều hợp? Và một số cách sử dụng phổ biến như nhau là gì?

+1

Xem thêm http://stackoverflow.com/questions/2116142/what-is-a-shim/12988556#12988556 –

+0

tương tự: https://softwareengineering.stackexchange.com/questions/66962/are-wrapper-and -shim-synonymous –

Trả lời

11

Trong mắt tôi, Bộ điều hợp và đèn nháy sẽ giống nhau.

Mặt khác, mặt khác phục vụ một mục đích khác. Nếu bạn mong đợi mã máy khách của bạn cần có khả năng kéo trở lại bức màn, để nói và truy cập thư viện cơ bản mà không sử dụng mô hình đối tượng của bạn, đó sẽ là một Mặt tiền. Mặt tiền trình bày một tập hợp các đối tượng/phương pháp đơn giản hoặc phổ biến trên đầu trang của một hệ thống phức tạp hơn, nhưng vẫn cung cấp quyền truy cập vào các phức tạp bên dưới khi yêu cầu hành vi bổ sung.

Việc sử dụng Bộ điều hợp nghĩa là mã khách hàng của bạn hoàn toàn, không biết rõ chi tiết triển khai cơ bản.

+0

Giải thích tốt về sự khác biệt về mặt tiền/bộ điều hợp. – chakrit

+1

@Chakrit Nhưng câu trả lời của bạn đã làm rõ sự khác biệt giữa Shims và Adapters –

9

IMO, Bộ điều hợp và chức năng Shim tương tự nhưng có nghĩa là có sự khác biệt.

A Shim thường rất giống nhau, nếu không chính xác, bộ giao diện với đối tượng là "bị mờ". Ví dụ, các đối tượng proxy có thể được coi là hơi giống một shim.

Trong khi Adapter thường có sự khác biệt hoàn toàn, nếu không hoàn toàn khác, bộ giao diện với đối tượng là "được điều chỉnh".

Lưu ý động từ "shim" và "thích ứng". Đó là cách tôi thường phân biệt hai.

Các vấn đề liên quan