Агрегация интерфейса в диаграммах классов UML
обычно ставят общую ассоциации между интерфейсами?
пример:
здесь я чувствую, что одна агрегация избыточна. Один между интерфейсами более важен, потому что это то, что будут использовать клиенты классов. BMW и LuxuryWheel всегда будут использоваться через ICar и IWheel. Однако ICar на самом деле не агрегирует IWheel, поскольку это интерфейс и не содержит фактической логики. БМВ явно aggregate LuxuryWheel, но это почти деталь реализации.
Как бы вы это моделировали? Есть ли способ в UML отметить агрегацию (или ассоциацию) как абстрактную или подлежащую реализации?
1 ответов
Если вы посмотрите на UML spec, вы найдете это в 7.3.24:
в частности, связь между интерфейсы подразумевают, что связь должна существовать между реализации интерфейсов.
Итак, да, вы можете рисовать агрегации между интерфейсами, но ваша диаграмма может не совсем означать то, что вы ожидаете.