Skip to content
insiteslol edited this page May 13, 2019 · 100 revisions

Вопрос 1.

Понятие полиморфизма в объектно-ориентированном подходе.

Полиморфизм — возможность объектов с одинаковой спецификацией иметь различную реализацию.

Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования [1].

Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).

Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:

  • внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);
  • внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций) [1].

Особенности использования полиморфизма на уровне экземпляров класса.

В объектно-ориентированом программировании используется как на уровне методов, так и на уровне классов. Однако нельзя описать работу полиформизма на уровне экземпляров классов, так как, использование полиформизма происходит с самим классом, а не его экземплярами. Экземпляры лишь получают изменения в результате влияния полиформизма на классы. Экземпляр класса — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будут доступны у объекта, построенного по описанию, заложенному в класс. Экземпляры используют для представления (моделирования) конкретных сущностей реального мира. Например объектом может быть ваша стиральная машина, и иметь следующие атрибуты: компания-производитель «Вятка», наименование модели «Вятка-автомат», серийный номер изделия ВЯТ454647, емкость 20 л [2].

В объектно-ориентированных языках класс является абстрактным типом данных. Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка [1].

Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться типом данных [3]. Например для языка Си, в котором полиморфизм поддерживается недостаточно, нахождение абсолютной величины числа требует трёх различных функций: abs(), labs() и fabs().

Вопрос 2. Диаграммы деятельности в UML. Способы изображения на них действующих лиц (actors).

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

Диаграмма деятельности позволяет любому, кто выполняет данный процесс, выбирать порядок действий. Другими словами, диаграмма только устанавливает правила обязательной последовательности действий, которым я должен следовать.

Пример:

Активности на диаграмме “разбросаны” по беговым дорожкам, каждая из которых соответствует поведению одного из объектов (например, клиента, менеджера, веб-сервера, сервера БД и т.п.). Благодаря этому легко определить, каким из объектов выполняется каждая из активностей. Дорожка - часть области диаграммы деятельности, на которой отображаются только те активности, за которые отвечает конкретный объект. Предназначены дорожки для разбиения диаграммы в соответствии с распределением ответственности за действия. Имя дорожки может означать роль или объект, которому она соответствует [4].

На диаграмме деятельности применяют один основной тип сущностей ‒ действие, и один тип отношений ‒ переходы(передачи управления и данных).

Вопрос 3. Взаимосвязь вопросов и применение в ВКР.

Диаграммы последовательности UML представляют собой спецификацию объекта или процесса и тем самым обеспечивают наличие полиморфизма. Одна диаграмма последовательности UML может иметь несколько реализаций, что представляет собой суть полиморфизма.

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

Список используемых источников:

  1. Сайт Studyfiles "Полиморфизм (программирование)."
  2. Сайт Codenet "Инкапсуляция, полиморфизм, наследование"
  3. Сайт Академик "Экземпляр (программирование")
  4. GitHub flexberry.github.io.
  5. Cайт "Моделирование на UML".
Clone this wiki locally