Агрегация интерфейса в диаграммах классов UML - PullRequest
8 голосов
/ 14 марта 2011

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

Пример:

Example Diagram

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

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

1 Ответ

9 голосов
/ 14 марта 2011

Если вы посмотрите на спецификацию UML , вы обнаружите, что в 7.3.24:

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

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

...