Диаграмма классов UML Тип отношения
Вопрос
У меня есть два класса, но я не знаю, какое отношение мне следует использовать.У меня есть класс Document с множеством свойств и без методов.Второй класс — это то, что я назвал DocumentFact (Факт — Фабрика).Этот класс содержит различные методы, которые возвращают коллекцию объектов Document.
Итак, класс Document ничего не знает о классе DocumentFact, поскольку не имеет к нему никакого отношения.С другой стороны, DocumentFact создает несколько объектов Document.Что это за отношение UML?Я думал примерно так:
-------------- ------------
|DocumentFact| -------> | Document |
-------------- 2.* ------------
Или:
-------------- ------------
|DocumentFact| ------- []| Document | // Composition
-------------- ------------
Что вы думаете?
Решение
Больше похоже на «создает экземпляры» отношения зависимости?
Другие советы
Просто мое мнение: если DocumentFact действительно является Фабрикой, я бы потратил три дополнительных нажатия клавиш и объяснил это.Вы заставляете пользователей вашего класса выяснять, имеете ли вы в виду «фабрику документов» или «факт о документе», когда они впервые читают имя класса.В неопределенности нет необходимости, особенно если вы умеете печатать вслепую.Я бы порекомендовал сделать название более понятным и менее двусмысленным.
Я согласен с набором инструментов, что фабрики->продукт - это связь между экземплярами - дескриптор множественности не применяется, если только фабрика не предназначена для поддержки ссылок на объекты продукта, и в этом случае это в любом случае 1:* или 1:n (многотонна)