Основы разработки программного обеспечения вычислительных систем. Милованов И.В - 28 стр.

UptoLike

28
Пример: физический объект датчик скорости, устанавливаемый
на борту летательного аппарата (ЛА). Создадим его абстракцию. Для это-
го сформулируем обязанности датчика:
знать проекцию скорости ЛА в заданном направлении;
показывать текущую скорость;
подвергаться настройке.
Теперь опишем абстракцию датчика. Описание сформулируем как
спецификацию класса:
класс «ДатчикСкорости» это
поле «Скорость вещественный» ...;
поле «Направление строковый» ...;
тип «ДатчикСкорости» закрытый;
функция «НовыйДатчик»(Направление);
вернуть «ДатчикСкорости»;
функция «ТекущаяСкорость»(ДатчикСкорости)
вернуть Скорость;
процедура «Настраивать»(ДатчикСкорости;
ДействительнаяСкорость: Скорость);
класс «ДатчикСкорости».
Здесь Скорость и Направление вспомогательные подтипы, обеспе-
чивающие задание операций абстракции (НовыйДатчик, ТекущаяСко-
рость, Настраивать). Приведённая абстракция это только спецификация
класса датчика, настоящее его представление скрыто в приватной части
спецификации и теле класса. Класс «ДатчикСкорости» ещё не объект.
Собственно датчики это его экземпляры, и их нужно создать, прежде
чем с ними можно будет работать. Например, можно написать так:
ДатчикПродольнойСкорости : ДатчикСкорости;
ДатчикПоперечнойСкорости : ДатчикСкорости;
ДатчикНормальнойСкорости : ДатчикСкорости.
ИНКАПСУЛЯЦИЯ
Инкапсуляция и абстракция взаимодополняющие понятия: абст-
ракция выделяет внешнее поведение объекта, а инкапсуляция содержит и
скрывает реализацию, которая обеспечивает это поведение. Инкапсуляция
достигается с помощью информационной закрытости. Обычно скрывают-
ся структура объектов и реализация их методов.
Инкапсуляция является процессом разделения элементов абстракции
на секции с различной видимостью. Инкапсуляция служит для отделения
интерфейса абстракции от её реализации.