2009-08-31 39 views

Trả lời

10

Chúng không liên quan.

Edit:

DI là a conecpt đầu tiên được mô tả bởi Martin Fowler, OSGi is a module system for Java that implements a complete and dynamic component model theo quy định của OSGi Alliance.

  • DI có thể được sử dụng trong ngôn ngữ khác nhau từ Java, OSGi là cụ thể cho Java
  • OSGi cố gắng giải quyết vấn đề của các thành phần phiên bản, DI là một thay thế cho mô hình dịch vụ Locator cũ.
+0

cảm ơn. bạn có thể mở rộng không? – flybywire

9

Chúng liên quan đến khái niệm ở chỗ cả hai đều cung cấp cơ chế "tách mối quan tâm".

OSGI thực hiện điều này ở cấp mô-đun - nghĩ rằng kiến ​​trúc Eclipse có nhiều plugin với mỗi plugin chịu trách nhiệm về mối quan tâm/tính năng cụ thể.

DI được định hướng ở cấp đối tượng - nó cung cấp phương tiện để xây dựng ứng dụng ra khỏi nhiều đối tượng có dây cùng nhau, với mỗi đối tượng chịu trách nhiệm về chức năng cụ thể của nó.

Công nghệ chúng khác nhau. OSGI là một spec có nhiều triển khai. DI từng là một mẫu thiết kế với nhiều triển khai và API. Tuy nhiên, có một số công việc gần đây trong JCP để cố gắng chuẩn hóa các API DI (JSR 330)

13

Đặc tả OSGi bao gồm hai phần riêng biệt: lõi và bản tóm lược.

Phần cốt lõi là đặc điểm kỹ thuật của hệ thống mô-đun cho Java. Như vậy, đặc điểm kỹ thuật cốt lõi không có mối quan hệ với khái niệm DI.

Phần tóm lược, ở phía bên kia, chỉ định một loạt các dịch vụ mà vùng chứa OSGi có thể cung cấp. Trong số các dịch vụ này, bạn sẽ tìm thấy "Đặc tả dịch vụ khai báo" (OSGi Compendium Services, Chương 112) là nỗ lực đầu tiên đưa khái niệm DI quen thuộc vào OSGi. Ý tưởng rất đơn giản: vì OSGi cho phép nhà phát triển triển khai, xác định và đăng ký dịch vụ, Đặc tả Dịch vụ Declarative cung cấp cho nhà phát triển khả năng xác định dịch vụ phụ thuộc vào một loạt các dịch vụ cơ bản khác. Đó là một vấn đề đặc biệt thú vị (và khó) trong OSGi, bởi vì các dịch vụ theo định nghĩa không đáng tin cậy, và chúng có thể xuất hiện và biến mất.

Bên cạnh Declarative Dịch vụ kỹ thuật, có ít nhất hai giải pháp phổ biến khác cố gắng để cung cấp một khuôn khổ mạnh hơn DI trong OSGi:

Cần lưu ý rằng phiên bản R4.2 sắp tới của đặc tả OSGi sẽ chứa một bản tóm tắt mới Đặc tả um có tên Blueprint Services, sẽ cung cấp giải pháp DI hoàn chỉnh cho OSGi dựa trên khung công tác Spring DM (nhóm Spring đã đóng góp rất nhiều cho đặc tả mới này)

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