Соглашение о конвертации UML в Java - PullRequest
1 голос
/ 20 февраля 2012

The uml class diagram of a car store

Пожалуйста, пренебрегайте любой другой стрелкой, кроме одной простой стрелки, на которой написано 1..1 или что-то подобное в конце

Я ссылался на многие веб-сайты иво многих книгах, в которых даются введения в UML 2.0, и я натолкнулся на два соглашения, используемых

, когда два класса соединены одной строкой без стрелки, и в конце написано либо 1..1, 1 .. * и т. д.затем

Предполагая, что в конце строки, соединяющей purchasePlan и User, срок равен 1 .. *, а не 0 .. *

1) в соответствии с одним соглашением, мы создаем массив объекта PurchasePlan вПользовательский класс в соответствии с диаграммой и один объект User в PurchasePlan

2) в соответствии со вторым соглашением мы создаем только массив объектов плана покупки в User, но не объект пользователя в PurchasePlan

Итак, какое соглашениеявляется наиболее широко используемым или стандартным?

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

То, на что вы смотрите, - это двунаправленная ассоциация . Это означает, что соглашение (1) подходит для этого отношения. Если бы у ассоциации была стрелка, тогда применялся бы второй подход.

Значение "0 .. *" важно в том смысле, что у пользователя не может быть никаких ссылок на планы закупок (т.е. его массив PurchasePlan может быть пустым). Соответствующее поле пользователя в каждом элементе PurchasePlan по-прежнему должно быть заполнено (не нулевым), чтобы придерживаться двунаправленного отношения; это отвергает возможность «осиротевших» планов покупки.

0 голосов
/ 20 февраля 2012

Первая опция создаст циклическую зависимость. Это не рекомендуется, потому что вы получаете более высокую степень связи, а поддерживаемость вашего кода ухудшается. Ваши два варианта - создать коллекцию PurchasePlan у вашего пользователя или одного пользователя в каждом из них. Какой из них вы используете, зависит от вашего домена. Спросите себя, нужно ли вам чаще приобретать все пакеты «Купить для пользователя» или наоборот.

...