Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обобщение и наследование

Обобщение (generalization) — это отношение между классом (суперклассом) и одной или несколькими его вариациями (подклассами). Обобщение объединяет классы по их общим свойствам, благодаря чему обеспечивается структурирование описания объектов. Суперкласс характеризуется общими атрибутами, операциями и ассоциациями. Подклассы добавляют к ним свои собственные атрибуты, операции и ассоциации. Говорят, что подкласс наследует составляющие суперкласса. Обобщение иногда называется отношением типа «является», поскольку каждый экземпляр подкласса одновременно является экземпляром суперкласса.

Простое обобщение упорядочивает классы в рамках некоторой иерархии. В этом случае каждый подкласс имеет одного непосредственного предка (его суперкласс). Бывает и более сложная форма обобщения, при которой подкласс может иметь несколько непосредственных суперклассов. Уровней обобщения может быть много.

Примеры обобщений приведены на рис. 22. Оборудование может быть насосом, теплообменником или резервуаром. Насосы бывают нескольких типов: центробежные, мембранные и плунжерные. Резервуары бывают сферические, с наддувом и с плавающей крышей. То, что символ обобщения резервуара изображен ниже символа обобщения насоса, никакого особого значения не имеет. В нижней части рисунка изображены несколько объектов. Каждый объект наследует составляющие от одного класса с каждого уровня иерархии обобщений. Поэтому объект Р101 обладает составляющими оборудования, насоса и мембранного насоса. Объект Е302 обладает составляющими оборудования и теплообменника.

Обобщение обозначается большой незакрашенной стрелкой. Стрелка указывает на суперкласс. Суперкласс можно соединять с каждым из его подклассов непосредственно, но мы предпочитаем группировать обобщения в дерево. Треугольник можно повернуть и расположить его с любой стороны суперкласс, но по возможности следует изображать суперкласс сверху, а его подклассы – снизу. Комментарии UML, указывающие на наличие дополнительных подклассов, не приведенных на диаграмме, ставятся в фигурных скобках.

Обобщение транзитивно и действует через произвольное количество уровней иерархии. Термины предок (ancestor) и потомок (descendant) используются для описания классов, находящихся далеко друг от друга по уровням, но связанных отношением обобщения. Экземпляр подкласса одновременно является экземпляром всех его предков. экземпляр обладает значениями всех атрибутов всех классов-предков. Подклассы не только наследуются все составляющие своих предков, но и добавляют к ним своим собственные составляющие. Например, Ритр добавляет атрибуты suctionPressure, dischangePressure и flowRate, отсутствующие у оборудования других классов.

На рис. 23 изображены классы геометрических фигур. Этот пример лежит ближе к программированию и демонстрирует наследование операций. Операции move, select, rotate и display наследуются всеми подклассами. Операция scale применяется только к одномерным и двумерным фигурам. Операция fill применима только в двумерным фигурам.

Рисунок 22 – Многоуровневая иерархия наследования с экземплярами

 

Рисунок 23 – Наследование на примере геометрических фигур

 

Слово, написанное на диаграмме рядом с линией, обозначающей обобщение, — это имя набора обобщений (dimensionality — размерность). Имя набора обобщений — это перечислимый атрибут, показывающий, какой аспект объекта абстрагируется конкретным обобщением. Каждый набор должен абстрагировать только один аспект. Например, аспектами обобщений для класса ТранспортноеСредство являются источник энергии (ветер, горючее, животное, сила тяжести) и область передвижения (земля, воздух, вода, безвоздушное пространство). Значения наборов обобщений находятся во взаимно-однозначном соответствии с подклассами обобщений. Название набора обобщений указывать не обязательно.

Не следует создавать слишком глубокую иерархию подклассов. Глубоко вложенные подклассы могут затруднять восприятие модели, точно так же, как глубоко вложенные участки кода в процедурных языках. Небольшое реструктурирование часто помогает уменьшить глубину иерархии наследования. На практике подходящая глубина вложенности определяется вкусом разработчика. Руководствуйтесь следующими соображениями: двух или трехуровневая иерархия наверняка приемлема, десять уровней — наверняка чересчур, а пять-шесть уровней может быть как приемлемо, так и неприемлемо — в зависимости от системы.

 

<== предыдущая лекция | следующая лекция ==>
Квалифицированные ассоциации | Использование обобщения
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 1228; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.