Как насчет этой конструкции: ?
У пары есть ровно 2 человека, связанных.У класса не должно быть никаких дополнительных свойств.Тем не менее, вы можете подумать о дате, когда он был создан.В случае брака может быть указано лицо, дающее фамилию, и т. Д. Возможно, в этом партнерстве есть и другие аспекты, поскольку вам, похоже, это необходимо.
Теперь, почему я использовал составную агрегацию?В основном композиция означает, что растворение составляющего элемента также устранит составные элементы.Так что это выглядит довольно католично, не так ли?Да и позор мне.Однако должно быть что-то, выражающее «человек может быть составлен только для одной пары».И это то, что комбинированное агрегирование также говорит (на моей любимой странице 110):
Составное агрегирование - это сильная форма агрегации, которая требует, чтобы объект части включался не более чем в один составной объект одновременно.Если составной объект удаляется, все его экземпляры, которые являются объектами, удаляются вместе с ним.
Итак, вместо этого должна использоваться общая композиция
Указывает, чтоСвойство имеет общую семантику агрегации.Точная семантика общего агрегирования варьируется в зависимости от области приложения и моделирующего устройства.
с объяснением моделирования, объясняющим, что каждый элемент должен использоваться только один раз в совместно используемом составе.
Конечно, простойАссоциация с ограничением будет лучше всего.Тем не менее, я оставлю диаграмму для развлечения читателей.
PS Прочтение различных комментариев заставляет меня думать, что семантика Partnership
(и это варианты братства) гораздо более чувствительна к социальным аспектам.чем интуитивно начинает думать.Таким образом, настоящий «ответ» должен быть следующим: сначала определить социальный контекст для Partnership
.