Агрегация интерфейса в диаграммах классов UML

обычно ставят общую ассоциации между интерфейсами?

пример:

Example Diagram

здесь я чувствую, что одна агрегация избыточна. Один между интерфейсами более важен, потому что это то, что будут использовать клиенты классов. BMW и LuxuryWheel всегда будут использоваться через ICar и IWheel. Однако ICar на самом деле не агрегирует IWheel, поскольку это интерфейс и не содержит фактической логики. БМВ явно aggregate LuxuryWheel, но это почти деталь реализации.

Как бы вы это моделировали? Есть ли способ в UML отметить агрегацию (или ассоциацию) как абстрактную или подлежащую реализации?

1 ответов


Если вы посмотрите на UML spec, вы найдете это в 7.3.24:

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

Итак, да, вы можете рисовать агрегации между интерфейсами, но ваша диаграмма может не совсем означать то, что вы ожидаете.