Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



association generalization (обобщение ассоциаций)

Отношение обобщения между двумя ассоциациями.
См. association; generalization.

Семантика

Между ассоциациями допускаются отношения обобщения, хотя это и может показаться чем-то необычным. Как и во всех обобщениях, элемент-потомок должен вносить дополнения в определение правил для предка, а также являться подмножеством его множества экземпляров. Под дополнениями понимаются дополнительные ограничения Ассоциация-потомок имеет больше ограничений, нежели ее предок. Например (рис. 30), если ассоциация-предок связывает классы Subject (Субъект) и Symbol (Символ), то ассоциация-потомок связывает классы Order (Заказ) и OrderSymbol (СимволЗаказ). При этом Order является потомком Subject, a OrderSymbol - потомком Symbol. "Являться подмножеством" означает, что каждая связь ассоциации-потомка является связью ассоциации-предка, но не наоборот. Наш пример подчиняется этому правилу. Связь, соединяющая Order и OrderSymbol, будет также соединять Subject и Symbol, однако не все связи, соединяющие Subject и Symbol, будут соединять Order и OrderSymbol.

Нотация

Стрелка обобщения (непрерывная линия, не закрашенный треугольный наконечник) соединяет ассоциацию-потомка с ассоциацией-предком. Наконечник стрелки направлен на ассоциацию-предка. Линии обобщения могут легко перепутаться с другими линиями на диаграмме, поэтому использовать обобщение ассоциаций нужно осторожно.
Рис. 30. Обобщение ассоциаций
Рис. 30. Обобщение ассоциаций

Пример

На рис. 30 показаны две специализации между Subject и Symbol общей ассоциации model-view (модель-вид). Ассоциация между Order и OrderSymbol является специализацией, точно так же, как и ассоциация между Client (Клиент) и ClientSymbol (СимволКлиент). Каждая из них связывает класс Subject с классом Symbol. При этом общую ассоциацию Subject-Symbol можно рассматривать как абстрактную. Что касается ее потомков, то они уже будут конкретными.
Такой образец иерархий парных классов, связанных ассоциациями, используется довольно часто.

Стандартные элементы

destroyed (уничтожаемый).

Алфавитный указатель