EDIT: Xem câu trả lời của Neil Bartlett, tôi đã trả lời khá cụ thể các dịch vụ khai báo nhưng nó tinh tế hơn tôi đã nói không chính xác ở đây.
Tóm lại: Thành phần là người tiêu dùng dịch vụ không phải nhà cung cấp, Dịch vụ là phần mở rộng của Linh kiện đăng ký làm nhà cung cấp dịch vụ.
Một thành phần có vòng đời (de/activate and modify), quản lý phụ thuộc dịch vụ (un/bind).
Dịch vụ là phần mở rộng của thành phần; thông qua dịch vụ đăng ký, nó cung cấp dịch vụ của nó cho các gói khác, vv bằng cách xuất bản các giao diện và thuộc tính được triển khai.
Trường hợp sử dụng cho Dịch vụ là hiển nhiên, các trường hợp điển hình cho việc sử dụng Linh kiện cần quản lý vòng đời, cấu hình hoặc phụ thuộc dịch vụ, nhưng không cần/muốn xuất bản Thành phần để sử dụng trong nhóm.
bạn có thể cung cấp ví dụ về thành phần không phải là dịch vụ không? – santiagozky
@santiagozky Chắc chắn rồi. Giả sử bạn muốn một thành phần ghi Server nằm trên socket và đáp ứng các yêu cầu trên TCP/IP. Khi thành phần bắt đầu, nó sẽ mở ổ cắm và tạo (các) luồng cần thiết để phục vụ khách hàng. Khi nó dừng lại, nó sẽ đóng (các) sợi và ổ cắm. Một ví dụ khác: một thành phần tạo ra một GUI bằng cách sử dụng Swing, SWT hoặc JavaFX. Cả các thành phần ví dụ này đều không phải là các dịch vụ, mặc dù chúng có thể sử dụng các dịch vụ * được xuất bản bởi các thành phần khác. –
@neal, cảm ơn. Bây giờ tôi hiểu rồi. – santiagozky