К.т.н. Орлов А.А.

Муромский институт Владимирского государственного университета

(МИ ВлГУ), г. Муром, Российская Федерация

Освоение объектно-ориентированного программирования на основе схем взаимодействия

Изучение и получение навыка создания компактных по коду приложений на языках программирования с объектно-ориентированным подходом  является довольно сложным процессом для начинающих программистов. Возникает также проблема с осознанием и объяснением работы создающегося или уже реализованного программного продукта. В настоящей статье предлагается подход, связанный с представлением объектов и потоков данных между ними в виде структурной схемы (структурной схемы взаимодействия данными между объектами).

Представим каждый объект в виде таблицы с перечислением (рис.1):

- свойств (как ячеек хранения информации об объекте);

- методов (как действий совершаемых над объектом для изменения значений свойств);

- событий, которые возникают в связи с изменением каких-либо свойств объекта.

Рис.1

Всю совокупность реализуемых в программе объектов можно изобразить в виде множества таких таблиц (прямоугольников на структурной схеме). Рассмотрим некоторый объект данного множества, обозначим его как объект 1. В образе объекта 1 будем рассматривать лишь те методы, которые исполняются при совершении какого-либо события другого объекта (объекта 2). Такую взаимосвязь будем показывать стрелкой (рис.2).

Рис.2

Известно, что метод объекта реализует некий алгоритм и описывается как подпрограмма-функция. Каждая такая функция может иметь входные параметры, в зависимости от которых меняются свойства объекта. Значения этих параметров должны передаваться от объекта 2 (они являются его свойствами) при возникновении его события (рис.3).

Рис.3

Допускается также, что при этом могут меняться свойства объекта 2. В таком случае параметр от объекта 2 к объекту 1 передается как ссылка. Будем называть структурную схему (рис.3) объектной моделью.

Рассмотрим пример. Пусть необходимо написать программу отображения движущихся горизонтально и отталкивающихся от стенок (краев поля движения) и друг от друга шариков. Каждый шарик можно представить в виде объекта, который обладает свойствами массы, скорости и позиции. Именно эти данные необходимы для поверки взаимодействия момента столкновения шариков (сравнение их позиции) и вычисления их новой скорости после столкновения. Объектная модель двух шариков представлена на рис. 4.

Рис 4.

Система работает следующим. Таймер (как объект) регулярно совершает событие такт. При этом выполняются методы синхронизации объектов шариков. В методах происходит изменение позиции шариков x в зависимости от скорости v, а также возникает событие столкновение.  Столкновение  шарика 1 запускает метод шарика 2 (проверка столкновения). Где в зависимости от координат шариков (координаты определяют: «столкнулись шарики или нет?») происходит изменение позиции и скорости шариков.

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