OpenU.Ru
Отношение обобщения между двумя ассоциациями.
См. association; generalization.
Семантика
Между ассоциациями допускаются отношения обобщения, хотя это и может показаться чем-то необычным. Как и во всех обобщениях, элемент-потомок должен вносить дополнения в определение правил для предка, а также являться подмножеством его множества экземпляров. Под дополнениями понимаются дополнительные ограничения Ассоциация-потомок имеет больше ограничений, нежели ее предок. Например (рис. 30), если ассоциация-предок связывает классы Subject (Субъект) и Symbol (Символ), то ассоциация-потомок связывает классы Order (Заказ) и OrderSymbol (СимволЗаказ). При этом Order является потомком Subject, a OrderSymbol - потомком Symbol. "Являться подмножеством" означает, что каждая связь ассоциации-потомка является связью ассоциации-предка, но не наоборот. Наш пример подчиняется этому правилу. Связь, соединяющая Order и OrderSymbol, будет также соединять Subject и Symbol, однако не все связи, соединяющие Subject и Symbol, будут соединять Order и OrderSymbol.
Нотация
Стрелка обобщения (непрерывная линия, не закрашенный треугольный наконечник)
соединяет ассоциацию-потомка с ассоциацией-предком. Наконечник стрелки направлен
на ассоциацию-предка. Линии обобщения могут легко перепутаться с другими линиями
на диаграмме, поэтому использовать обобщение ассоциаций нужно осторожно.
Рис. 30. Обобщение ассоциаций
Пример
На рис. 30 показаны две специализации между Subject и Symbol общей ассоциации
model-view (модель-вид). Ассоциация между Order и OrderSymbol является специализацией,
точно так же, как и ассоциация между Client (Клиент) и ClientSymbol (СимволКлиент).
Каждая из них связывает класс Subject с классом Symbol. При этом общую ассоциацию
Subject-Symbol можно рассматривать как абстрактную. Что касается ее потомков,
то они уже будут конкретными.
Такой образец иерархий парных классов, связанных ассоциациями, используется
довольно часто.
Стандартные элементы
destroyed (уничтожаемый).