Как я могу указать, что метод возвратит набор объектов в UML? Существует ли лучший способ объяснить отношения, чем иметь класс набора как тип возврата?
Вы можете использовать «ассоциацию». Есть три основных типа ассоциации: состав, агрегация и «нормальная» ассоциация. Каждый из них выражает разную экзистенциальную зависимость целого от части и наоборот.
Обычно ассоциации выражаются соединением двух классов линией. Композиция и агрегация имеют символ ромба на стороне композита / агрегата. Композит / агрегат состоит из одной или нескольких частей. (См. вики-статью )
Пример:
Представьте, что у вас есть два класса: Библиотека, Книга. Можно сказать, что Библиотека - это целое, а Книга - это часть. Мы не могли записать это так (в ASCII, пожалуйста, погуглите реальные диаграммы).
Библиотека (совокупность) <> --- Книга (часть)
Если вы хотите выразить эти отношения, ассоциация будет вашим другом.
РЕДАКТИРОВАТЬ:
Как я сказал в комментарии, я не думаю, что существует специальная нотация для возвращаемых коллекций. Однако вы правы, возврат коллекции зависит от языка. Но вы можете рассмотреть возможность возврата массива ( String []
), который является более общим способом представления набора значений и должен быть более независимым от языка, чем Collection. Тогда программист сам решит, как он это реализует. Он может использовать коллекцию
, вектор C ++ STL ... суть в том, чтобы вернуть набор значений.
Хм, это правда, что в диаграммах классов UML нет явного способа выразить типы коллекций. Я читал книгу, в которой критиковали UML за это, но они упомянули, что в некоторых более ранних версиях UML были типы коллекций. Еще одна вещь - это язык объектных ограничений (OCL), который интегрирован с UML (как стандарт OMG) и имеет собственные типы коллекций с удобными операциями.