Представление перегруженных методов в UML - PullRequest
6 голосов
/ 01 декабря 2008

Я пытаюсь создать диаграмму UML, представляющую некоторый код Java.

В классе у меня есть метод, который перегружен.

Насколько я знаю, параметры для методов не показаны на диаграммах UML.

Как мне представить перегрузку метода в UML?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 14 января 2010

Когда речь идет о перегрузке - например, в вашем классе есть больше методов с тем же именем, но с другой сигнатурой (параметры, возможно, возвращаемое значение в зависимости от целевого языка ...), вы должны предоставить сигнатуру. UML не указывает, что у вас не может быть параметров метода.

3 голосов
/ 01 декабря 2008

В подклассе вы указываете метод с той же сигнатурой, что и метод, который вы хотите переопределить, и добавляете в метод примечание {redefines}. Например:

+doSomething(p:AThing):int{redefines}

Это означает, что метод doSomething () переопределяет метод в суперклассе. И да, параметры для методов показаны на диаграммах. Как и в примере, p является параметром типа AThing.

2 голосов
/ 07 января 2009

Вы не говорите свой инструмент и UML-диаграмму (я думаю, диаграмма классов), но у вас есть 2 способа:

  1. вы можете написать заметку об этом методе;
  2. в этом методе вы можете использовать запись стереотипов ключевых слов << <em>перегружен >>;
2 голосов
/ 01 декабря 2008

Проверьте параметры отображения для всей диаграммы или отдельного класса / интерфейса. У большинства инструментов UML есть варианты отображения списка параметров методов.

0 голосов
/ 21 мая 2009

Большинство ответов выше верны с учетом определенного вопроса. У Alepuzio, Vincent и bmatthews68 есть ответы, которые имеют смысл в контексте.

** Если вопрос заключается в переопределении метода суперклассов с той же сигнатурой, что и в переопределении, то это правильное определение. Если перегрузка заключается в том, что вы создаете один и тот же метод, который принимает разные аргументы, тогда я не верю, что это возможно для структурной модели, вы можете показать это на диаграмме последовательности, например, поведенческой, но все же не совсем.

Так что + doSomething (p: AThing): int {redefines} - это правильно, что Винсент поставил.

** Если ваша проблема / вопрос заключается только в том, что параметры не отображаются визуально на диаграмме, которая обычно устанавливается в большинстве инструментов UML.

** Если вы хотите сделать еще более понятным то, что вы делаете, используйте ключевое слово <>, также обратите внимание, что ключевое слово не является стереотипом, поскольку оно не является частью метамодели.

...