2012-02-11 37 views
5

Có rất nhiều thứ ở đây về API là gì, nhưng tôi không thể tìm thấy những gì tôi cần về sự khác biệt giữa API plugin và API thư viện lớp. Tôi vẫn chưa hiểu.API plugin và API thư viện lớp

Trong sách, API tài liệu, tôi đã đọc: Sự khác biệt chính giữa API plugin và API thư viện lớp nằm ở bên nào cung cấp triển khai API tiếp xúc.

Plugin API: Nhà xuất bản tạo một ứng dụng và cho thấy một API plugin; nhà phát triển bên thứ 3 triển khai API. Plugin nhà phát triển bên thứ ba mở rộng chức năng của ứng dụng của nhà xuất bản.

Thư viện lớp API: Nhà xuất bản tạo API và triển khai API. Người dùng cuối sử dụng thư viện lớp thông qua API của nó để viết một ứng dụng. Với thư viện lớp, nhà xuất bản triển khai thư viện chức năng hiển thị API.

Tôi nghĩ rằng tôi hiểu plugin. Tôi không rõ ràng về API thư viện lớp. Nó giống như một nhà sản xuất máy in tạo ra một trình điều khiển dựa trên một thư viện lớp O/S sao cho máy in của họ hoạt động với O/S đó?

Nếu có, bạn có thể giải thích thêm về sự khác biệt trong các API không? Cả hai vẫn là một tập hợp các phương pháp tiếp xúc? Và nhà xuất bản triển khai API của riêng mình như thế nào?

Tham khảo

API Tư liệu: http://www.amazon.com/documenting-APIs-writing-developer-documentation/dp/0963002104

What is the difference between a Java API and a library?

Difference between framework vs Library vs IDE vs API vs SDK vs Toolkits?

API vs Toolkit vs Framework vs Library

Trả lời

4

Họ là cả hai giao diện phần mềm. Điều này có nghĩa là cả hai đều trông giống nhau, thường là một tệp lưu trữ Java (JAR) chứa một gói (hoặc nhiều gói) với các giao diện, các lớp, ngoại lệ, v.v.

Tôi có thể hiểu tại sao bạn tìm thấy lời giải thích từ cuốn sách khó hiểu. Theo như chính API có liên quan, việc triển khai Java được cung cấp trong cả hai trường hợp.

Sự khác biệt chính là cách sử dụng mã Java này. Trong trường hợp của API Plugin (tôi thích gọi nó là Service Provider Interface, hoặc SPI), bạn chủ yếu dự kiến ​​sẽ thêm chức năng của riêng bạn bằng cách thực hiện các giao diện Java được cung cấp và/hoặc mở rộng các lớp được cung cấp. Mặt khác, bạn chỉ được mong đợi gọi một API thư viện (tôi thích gọi nó là API đơn giản), bạn hiếm khi được mong đợi thực hiện các giao diện hoặc mở rộng các lớp.

Vì cách chúng được sử dụng, có nhiều khác biệt tinh tế giữa cách bạn thiết kế SPI và cách bạn thiết kế một API. Trong khi tôi không có một bài dành riêng cho việc so sánh SPI và API, khi tôi thảo luận về các khía cạnh khác nhau của thiết kế API, tôi thường chỉ ra những khác biệt này:

http://theamiableapi.com/

+0

Cảm ơn, Ferenc. Trang web của bạn rất hữu ích, đặc biệt là bài viết, [Dự đoán tiến hóa] (http://theamiableapi.com/?s=spi+vs+api). – genghis

0

Thư viện: Là một tập hợp các phương pháp bó được sử dụng để thực hiện nhiều tác vụ hơn.

Plugin: Là tập hợp một vài phương pháp được sử dụng để thực hiện tác vụ cụ thể.

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