Вопрос

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

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

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

    private static Map<Searcher, Integer> searcherCache;
}

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top