Tôi có một số lớp học riêng tư bên trong và tôi không chắc chắn nên đặt chúng ở đâu trong sơ đồ lớp của tôi. Họ có nên ở trong các lớp học bên ngoài của riêng mình hay không?Các lớp học riêng và uml
Trả lời
UML là để thiết kế hoặc mô tả kiến trúc phức tạp. Tôi không nghĩ rằng một lớp bên trong là quan trọng để đề cập đến nó trong một sơ đồ lớp UML. Nếu bạn thiết kế hệ thống của mình trên cấp độ giao diện, việc triển khai của bạn và do đó lớp riêng tư nằm ngoài tiêu điểm, cũng như tất cả các phương thức riêng tư. Sơ đồ của bạn chỉ nên chứa các phương thức công khai = các phương thức giao diện.
Bạn có thể đại diện cho họ bên ngoài với một số containment
có dấu hiệu +
ở bên cạnh lớp bên ngoài. Bạn có thể tìm thấy nó here.
Tôi không nghĩ rằng bạn có thể có một lớp bên trong một lớp khác trong sơ đồ lớp UML. Cách bạn trình bày chúng trong UML nên phản ánh quan hệ cấu trúc của chúng với các lớp cha. Nếu chúng được tạo ra bên trong chỉ để thuận tiện, bạn chỉ có thể kết nối chúng. Nếu chúng có mối quan hệ ngăn chặn hoặc tập hợp, UML có cú pháp thích hợp. Trong mọi trường hợp, các lớp bên trong là ngôn ngữ cụ thể và do đó, nó sẽ là lạ (và thực sự là một thiết kế sai lầm) cho UML để có bất kỳ hỗ trợ rõ ràng cho họ.
liên quan có khả năng thảo luận bên ngoài: http://www.coderanch.com/t/99318/patterns/Inner-Class-UML
Luôn luôn có một sự khác biệt giữa UML ngôn ngữ và bất cứ công cụ mô hình bạn đang sử dụng, vì vậy đó là cách tốt nhất để đạt được một cái gì đó phụ thuộc vào công cụ.
Trong UML, các lớp có khả năng hiển thị/phạm vi, giống như thành viên của lớp học. Nói cách khác, UML cho phép các lớp riêng, nhưng điều đó không có nghĩa là công cụ của bạn có thể hiển thị "sự riêng tư" của lớp.
UML cũng cho phép các lớp học chứa các lớp khác. Tôi nói cách khác, các lớp học có thể đóng vai trò như các gói. Một lần nữa, cách công cụ hiển thị điều này thay đổi.
Từ góc độ UML thuần túy, tôi khuyên bạn nên có lớp bên trong chứa bên trong lớp bên ngoài và được đánh dấu riêng tư.
Trong biểu đồ, nếu công cụ của bạn không hiển thị không gian tên, bạn có thể thay đổi kích thước lớp bên ngoài và đặt bên trong nó. Nếu công cụ của bạn cho phép thay đổi kích thước, đó là.
Cuối cùng, trừ khi bạn chỉ có tổng cộng tám hoặc mười lớp, tôi khuyên bạn nên hiển thị các lớp bên trong trong một biểu đồ riêng biệt.
Đây là giải pháp tôi thấy
Nguồn http://www.informit.com/articles/article.aspx?p=336264&seqNum=3
- 1. Các lớp học một phần trong các dll riêng biệt
- 2. Mô tả mối quan hệ bạn bè giữa các lớp học trong UML
- 3. OO JQuery và các lớp học
- 4. css nth-child và các lớp học
- 5. Sơ đồ lớp MVC UML
- 6. Lớp học kiểu cũ, lớp học kiểu mới và metaclasses
- 7. xsd.exe để tạo lớp học dưới dạng tệp riêng biệt?
- 8. Sơ đồ lớp UML enum
- 9. Thành viên riêng tư trong lớp học pimpl?
- 10. Lớp thành viên tĩnh - khai báo lớp riêng tư và lớp thành viên riêng tư?
- 11. Các lớp học Javascript 2.0
- 12. Tạo các lớp học trong cùng một gói vào các lọ riêng biệt
- 13. Cách hiển thị mối quan hệ thừa kế riêng trong sơ đồ lớp UML
- 14. Tên riêng "mang tên" mangling và thuộc tính lớp học vs
- 15. có nên kết hợp các lớp enum trong sơ đồ lớp uml không?
- 16. Biểu diễn văn bản cho sơ đồ lớp UML - DSL cho UML
- 17. Các lớp lồng nhau riêng
- 18. Objective-C và UML Modeling
- 19. PHP bao gồm các lớp học trong lớp khác
- 20. MVC, các lớp học sẽ đi đâu?
- 21. C++ Tự động tải các lớp học
- 22. Android: Đề xuất AsyncTask: lớp riêng tư hoặc lớp học công khai?
- 23. các lớp học và phương pháp báo cáo
- 24. Các metaclasses của Python và trang trí lớp học
- 25. Intellij tạo javadoc cho các phương thức và lớp học
- 26. tổ chức các lớp học và mô-đun trong python
- 27. xử lý và các lớp học với không gian
- 28. asp.net: các lớp học một phần và thừa kế
- 29. Các đối tượng và lớp học trong Rust
- 30. lồng nhau enum trong C# và các lớp học