Как я могу смоделировать пользовательскую ассоциацию исключений в диаграмме классов? - PullRequest
1 голос
/ 10 ноября 2011

Чтение здесь , кажется, что моделирование пользовательского класса исключений с использованием обобщения является обычным явлением. Что не упоминается, так это то, как я могу смоделировать ассоциацию с классом, который потенциально может генерировать пользовательское исключение. Обратите внимание, я не спрашиваю, как смоделировать поведение последовательности, когда дело доходит до возбуждения исключения; Я специально хочу смоделировать ассоциацию. Или это неправильное использование диаграммы классов?

1 Ответ

6 голосов
/ 10 ноября 2011

Вероятно так:

enter image description here

Обратите внимание, что <<throws>> не является стандартным стереотипом UML. В этом нет ничего плохого - совершенно нормально определить свой собственный. Если вы хотите придерживаться стандартов, то <<create>>, вероятно, самый близкий. (См. здесь для списка поддерживаемых стереотипов в UML 2.1).

Вы можете смоделировать MyClass-MyException как простую двоичную ассоциацию, а не как зависимость, но на самом деле она не поддерживается семантически; нет систематических отношений между ними. Аналогично случаю, когда Фабрика создает экземпляры. Есть хорошая статья об отношениях зависимости здесь , если вам нужна дополнительная информация.

это неправильное использование диаграммы классов?

Нет, если вы найдете это полезным. UML - это инструмент: используйте его там, где и как он помогает, игнорируйте его там, где его нет. Показательный пример: педантично, MyClass не генерирует никаких исключений, один или несколько методов MyClass генерируют исключение. Так что зависимость это абстракция. Однако до тех пор, как:

  • вы - и все, кому еще нужно прочитать модель - понимают это, и
  • это полезно

тогда это не злоупотребление, это использование.

НТН.

...