Mũi tên có ý nghĩa gì trong Biểu đồ lớp?


8

Tôi cần trợ giúp để cố gắng hiểu ý nghĩa của mũi tên trong Sơ đồ lớp UML là gì, cụ thể hơn trong Sơ đồ tổng hợp này. Sự khác biệt giữa dòng đơn giản (từ một lớp sang một dòng khác) và mũi tên (không phải mũi tên thừa kế, tôi đề cập đến dòng màu đen)?

Sơ đồ lớp UML

Câu trả lời:


13

Để thảo luận tốt hơn về hình ảnh, tôi chú thích hình ảnh của bạn với một số con số. Hy vọng điều này sẽ giúp tôi rõ ràng hơn trong văn bản của tôi.

Sơ đồ lớp chú thích

Thực sự có ba loại dòng được sử dụng ở đây - liên kết (1), thành phần (4-> 2) và kế thừa (3).

Một đường liền mạch kết nối hai lớp, chẳng hạn như giữa ClientBookComponentchỉ đơn giản là mối quan hệ liên kết. Nó thường được sử dụng để chỉ ra rằng một lớp biết về (có thể như trong nhận như là một đối số cho một phương thức) hoặc có một lớp khác (có thể là một biến thể hiện). Không có bất kỳ trang trí hoặc với một mũi tên ở cả hai đầu, mối quan hệ là hai chiều - hai lớp chia sẻ mối quan hệ và biết về nhau. Trong một số trường hợp, chẳng hạn như dòng 1 trong hình, mối quan hệ là định hướng. Các Clientlớp biết về BookComponent, nhưng điều ngược lại là không đúng sự thật như BookComponentkhông có hoặc biết về Client. Lưu ý rằng cũng có những chú thích khác có thể xuất hiện trên các mối quan hệ liên kết, chẳng hạn như bội số hoặc vai trò lớp.

Dòng tiếp theo là dòng kết nối BookCompositevới BookComponent. Đó là một hiệp hội, giống như ranh giới giữa ClientBookComponent. Tuy nhiên, các chú thích tại các điểm tôi dán nhãn 2 và 4 thêm thông tin bổ sung về mối quan hệ. Dòng trong điểm 1, mũi tên ở điểm 2 có nghĩa tương tự - BookCompositenhận thức được các BookComponenttrường hợp, nhưng không phải là cách khác (một mối quan hệ định hướng). Chú thích tại điểm 4 chỉ ra mối quan hệ tổng hợp - BookCompositelà tập hợp của BookComponent. Tuy nhiên, đó không phải là một mối quan hệ mạnh mẽ (như mối quan hệ sáng tác mạnh mẽ), do đó, tổng hợp chỉ ra rằng một BookComponentcó thể chỉ ra ở những nơi bên ngoài BookComposite(bạn không cần phải BookCompositecó một BookComponent).

Một điều cần lưu ý là mũi tên được sử dụng để hiển thị các liên kết định hướng thường không phải là một mũi tên đen đặc như trong hình ảnh này. Tôi thường thấy nó là một mũi tên mở trông giống như một mũi tên vđược hiển thị trong hình ảnh của bạn.

Cuối cùng, điểm được gắn nhãn 3 là mối quan hệ thừa kế mà bạn đã đề cập trong câu hỏi của mình.

Nếu bạn quan tâm nhiều hơn về mô hình hóa UML, tôi khuyên bạn nên mua UML chưng cất . Đó là một cuốn sách hay của Martin Fowler bao gồm lớp, trình tự, đối tượng, gói, triển khai, ca sử dụng, máy trạng thái, hoạt động, giao tiếp, cấu trúc tổng hợp, thành phần, cộng tác, tổng quan tương tác và sơ đồ thời gian.


@ThomasOwens có nghĩa là gì để khách hàng biết về thành phần sách? Khi nào A biết về B? Tôi thực sự không hiểu mình nên vẽ mũi tên theo hướng nào ...
user1534664 11/12/14

@ user1534664 Nếu A biết về B, thì điều đó có nghĩa là A bằng cách nào đó có thể gọi các phương thức trên B. Thông thường, điều đó có nghĩa là B là thuộc tính của A hoặc B được truyền dưới dạng đối số cho phương thức trên B. Hướng mũi tên chỉ hướng giao diện có thể được gọi Một mũi tên từ A chỉ vào B có nghĩa là A có thể sử dụng giao diện của B (A biết về B).
Thomas Owens

3

Hình ảnh của bạn cho thấy một số mối quan hệ khác nhau.

Mối quan hệ giữa các lớp Client và BookComponent là mối quan hệ Ngăn chặn. Tức là Khách hàng Chứa phiên bản BookComponent.

BookCompozit và BookComponent có hai mối quan hệ, đầu mũi tên mở là mối quan hệ Tổng quát hóa (nghĩa là BookComponent khái quát hóa BookCompozit hoặc theo các thuật ngữ khác BookCompổng chuyên / xuất phát từ BookComponent). Đầu nhọn khép kín với một viên kim cương ở đuôi là Tập hợp. Đó là, BookCompozit chứa Bộ sưu tập BookComponent. Thực tế là Kim cương không được lấp đầy cũng rất có ý nghĩa. Điều đó có nghĩa là vòng đời của BookComponents chứa không gắn với vòng đời của BookCompozit chứa. Nếu nó được điền thay vì Tập hợp, nó sẽ là Thành phần và khi BookCompozit bị hủy, thì đó sẽ là BookComponents

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.