Как я могу представить члена класса Map в UML? - PullRequest
2 голосов
/ 14 сентября 2009

Когда у меня есть класс с членом Map, я не хочу рисовать отдельный объект class / interface для представления самой Map, но я бы предпочел рассматривать карту как собственный тип чем сложный объект.

Рассмотрим следующий пример

public class IndexManagerImpl implements IndexManager {
    /* ... */

    private static Map<Searcher, Integer> searcherCache;
}

Я бы хотел подчеркнуть тот факт, что IndexManagerImpl содержит (хотя и косвенно) ссылки на Searcher экземпляры. Было бы здорово, если бы представление могло также показывать параметры типа searcherCache.

Ответы [ 3 ]

2 голосов
/ 24 мая 2010

Не согласен с Мартином ... MAP - это базовая структура данных, которую мы изучаем на любом выпускном компьютерном курсе! Он существует на большинстве современных языков и является важным ресурсом для аналитиков. Карта может быть нарисована как ассоциация в некоторых ситуациях, но потребуется какое-то расширение (стереотипы) ИЛИ вы можете определить шаблонный класс. Мне не нравится шаблонный подход - он скрывает ассоциации между основными игроками. Последним ресурсом является AssociationClass, специальный UML-класс, используемый для определения nxn-отношений с атрибутами, что, как мне кажется, подходит для вашей проблемы, где поле "целое число" является своего рода счетчиком Searchers, связанным с indexManager. Помните также, что по коду вы не можете видеть другую сторону отношений, в то время как UML предназначен для показа обеих сторон, проблем навигации и т. Д.

0 голосов
/ 09 ноября 2010

Карты нельзя считать коллекциями, поскольку они имеют свойства, отличные от коллекций. На самом деле карта является множественной коллекцией с определенными (картографическими) отношениями. На мой взгляд, представление карты сильно зависит от требования, и может быть несколько представлений карты UML, основанных на вашем требовании. Таким образом, в простой форме карта может быть представлена ​​связь один ко многим с элементом набора ключей и одна к одной ассоциацией элемента набора ключей с элементом значения. Где ключевой элемент и элемент значения являются обертками к исходным элементам, поскольку в действительности они не связаны с исходными элементами.

Надеюсь, это поможет ....

0 голосов
/ 14 сентября 2009

Фактически объекты коллекции указывают на связь «один ко многим» между двумя классами. Поэтому у вас должен быть класс IndexManagerImpl на диаграмме, который имеет связь один-ко-многим с классом Searcher

...