Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_4_UML_СВЯЗИ.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
201 Кб
Скачать
☆

20. Интерфейсы и реализации

После создания нескольких классов можно обнаружить, что они не связаны с от­дельным родителем, но их поведение может характеризоваться некоторыми одинако­выми операциями с одинаковыми сигнатурами. Можно запрограммировать эти опе­рации для одного из классов и повторно использовать этот код для других. Можно также разработать набор операций для классов в одной системе и повторно использо­вать их для классов другой системы.

В любом случае, можно выделить набор повторно используемых операций. Это осуществляют с помощью специальной конструкции UML — интер­фейса, представляющего собой набор операций, которые задают некоторые аспекты поведения класса и представляют его для других классов.

Рассмотрим пример, проясняющий концепцию интерфейса. Клавиатура, которая используется для обмена информацией с компьютером, является повторно используе­мым интерфейсом. Ее операции нажатия клавиш позаимствованы от печатающей ма­шинки. Размещение клавиш точно соответствует прототипу, но главное — из одной системы в другую перенесена операция нажатия клавиши. Другие операции интер­фейса — переключение регистра, фиксация регистра прописных букв и табуляция — тоже перенесены с печатающей машинки.

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

Изображение интерфейса аналогично изображению класса — он тоже представля­ется прямоугольником. Отличие состоит в том, что интерфейс как набор операций не имеет атрибутов. В то же время, из изображения класса можно исключать атрибуты. Как же безошибочно отличить интерфейс от класса, у которого просто не показаны атрибуты? Во-первых, можно использовать конструкцию стереотипа и поместить над­пись «интерфейс» над именем интерфейса. Во-вторых, имя любого интерфейса можно начинать с буквы "I".

Клавиатура компьютера частично "реализует" поведение пишущей ма­шинки. Соответственно, взаимосвязь между классом и интерфейсом на­зывается реализацией. Она изображается пунктирной линией с полым треугольником, примыкающим к интерфейсу и указывающим на него. На рис. 21 показано изображение интерфейса.

Рис. 21. Интерфейс — это набор операции, реализуемых классом.

Класс связан с интер­фейсом отношением реализации, которое обозначается пунктирной линией с неза­крашенным треугольником, примыкающим к интерфейсу и указывающим на него

Существует еще один способ представления класса и интерфейса — с помощью небольшого кружочка, соединенного линией с классом, как показано на рис. 22.

Рис. 22. Редко используемый способ изображе­ния класса, реализующего интерфейс

Отметим сходство символов реализации и наследования. Между ними есть только одно отличие: реализация представляется пунктирной линией, а на­следование — сплошной. Условное обозначение подчеркивает сходство и отличие между двумя типами взаимосвязи. Наследование можно рассматривать как взаимосвязь между родителем и ребенком. Родитель передает физические атрибуты (цвет глаз, цвет волос и т.д.) ребенку, поведение которого тоже совпадает с родительским. Реали­зация напоминает взаимосвязь учителя и ребенка: учитель не передает фи­зические атрибуты ребенку, но ребенок перенимает поведение и образ дей­ствий от учителя.

Класс может реализовывать несколько интерфейсов, а интерфейс, в свою очередь, может быть реализован несколькими классами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]