2011-09-15 44 views
12

Tôi đang thiết kế một sơ đồ lớp và tôi có một nghi ngờ:có nên kết hợp các lớp enum trong sơ đồ lớp uml không?

Tôi có một lớp có một số thuộc tính tham chiếu đến enums java và các lớp khác sẽ được ánh xạ dưới dạng danh mục db.

Ví dụ: có một lớp được gọi là BankAccount có một thuộc tính được gọi là loại: BankAccountType (enum) và một thuộc tính khác là ngân hàng: Bank (danh mục danh mục).

Bạn nên đánh dấu sự liên kết giữa các lớp học hoặc nó có thể bị giảm bớt? Nếu có, chúng có nên được tổng hợp (một tài khoản ngân hàng có một loại tài khoản ngân hàng) hoặc đơn giản là liên kết không?

Cảm ơn bạn trước.

Trả lời

22

Bất kể loại thuộc tính là một enum, có hai cách để đại diện cho các thuộc tính trong UML: như là thuộc tính thích hợp, và như các hiệp hội đạo diễn.

The two ways of representing attributes in UML

Hai phong cách của tờ khai thuộc tính ngữ nghĩa tương đương: họ có nghĩa là chính xác những điều tương tự. Nói cách khác, cái nào bạn chọn là vấn đề về phong cách.

Sử dụng các thuộc tính làm cho biểu đồ đơn giản hơn và trong một số công cụ là bắt buộc để thuộc tính hiển thị trong chế độ xem dạng cây của mô hình.

Sử dụng liên kết trực tiếp có nghĩa là bạn phải bao gồm loại mục tiêu (enum) trong biểu đồ, có nghĩa là bạn có thể xem các chữ. Tất nhiên, bạn có thể bao gồm nó trong trường hợp khác quá, như tôi đã làm với An_Enum ở trên.

Tôi thường không sử dụng tập hợp hoặc tác phẩm cho mô hình cấp mã; Tôi cảm thấy chúng phù hợp hơn để mô tả mối quan hệ trừu tượng hơn giữa các lớp (như trong một mô hình thông tin) và khái niệm chúng không thực sự khớp với bất kỳ thứ gì trong mã nguồn. Các thuộc tính làm, có thể được bổ sung bởi các mối quan hệ "phụ thuộc" hoặc "sử dụng" vào các lớp được sử dụng như các kiểu biến cục bộ hoặc các phương thức của chúng được gọi.

+0

Tính đa dạng hoạt động như thế nào trong trường hợp này? – FateNuller

1

Một liên kết đơn giản sẽ thực hiện thủ thuật. Tập hợp cho thấy rằng vòng đời của lớp chứa được gắn với lớp chứa.

Từ wikipedia: Sự kết hợp có thể xảy ra khi một lớp là tập hợp hoặc vùng chứa của các lớp khác, nhưng ở đó các lớp chứa không có sự phụ thuộc vòng đời mạnh vào thùng chứa. không. http://en.wikipedia.org/wiki/Class_diagram#Aggregation

Ngoài ra, các mặt hàng này dành cho bạn: UML class diagram enum

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