Агрегационные отношения между клиентом и лицом / организацией - PullRequest
0 голосов
/ 28 октября 2010

У меня есть Клиент объект, в котором будет либо Персона объект, либо Организация объект.Эти объекты Person или Organization могут иметь отношения к другим объектам независимо от объекта Client .В этом случае я должен использовать ассоциацию общего агрегирования между Client -> Person и Client -> Organization, где объект Client является целым.

Также обратите внимание на следующие сценарии:

  1. Человек может быть обычным Человеком в некоторых сценариях, таких как; Лицо производит платеж от имени Клиента (* Организация *)
  2. Лицо может быть Клиентом, который купил у нас Продукт .
  3. Человек может быть Поставщиком

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Хотя вы действительно не предоставили достаточно информации, похоже, вы описываете типичную модель класса роли .

Я подозреваю, что ваш Клиент на самом деле не иметь Лицо или Организацию, но скорее, что Лицо или Организация является Клиентом, или IOW, либо Лицо, либо Организация могут играть роль Клиента в определенных отношениях.

Существуют различные способы смоделировать это, и нет единственного правильного решения.Вы могли бы найти эту статью полезной

1 голос
/ 28 октября 2010

не забывайте ограничение xor между обеими ассоциациями (поскольку клиент не может быть подключен как к человеку, так и к организации)

...