2012-02-23 96 views
8

Trong C++ vì thừa kế riêng không được coi là mối quan hệ is-a, làm thế nào nó được thể hiện trong biểu đồ lớp và nếu nó được hiển thị dưới dạng mối quan hệ has-a thì làm thế nào có thể nó được phân biệt giữa một thành phần và một thừa kế riêng?Cách hiển thị mối quan hệ thừa kế riêng trong sơ đồ lớp UML

+4

Đây là một câu hỏi hay. Vấn đề là thừa kế riêng là một oxymoron, đó là lý do tại sao nó không phải là một phần của từ điển UML. Tôi sẽ hiển thị nó như là có-một với một nhận xét nói rằng nó được thừa kế riêng. Một lựa chọn khác là cấu trúc lại thiết kế của bạn để tránh sự thừa kế riêng tư: các trường hợp khi bạn phải có rất ít và rất xa, vì vậy cơ hội tốt là một đồng bằng có-a sẽ hoạt động tốt. – dasblinkenlight

Trả lời

2

Nó phải là một mối quan hệ Thành phần (kim cương đen rắn ở phía lớp con), vì:

  • cá nhân thừa kế có nghĩa là "thực hiện ở khía cạnh" nhưng trong vấn đề này nó có thể được điều trị đơn giản giống như " có một "mối quan hệ.
  • Một thể hiện của phân lớp rõ ràng sở hữu các cals cơ sở một phần của đối tượng và quyền sở hữu không được chia sẻ với bất kỳ đối tượng nào khác.
Các vấn đề liên quan