Книга: Основы объектно-ориентированного программирования
Компоненты
Компоненты
Пример использует представление точки в двумерной графической системе:
Рис. 7.1. Точка и ее координаты
Для определения типа POINT как абстрактного типа данных потребуется четыре функции-запроса: x, y, ?, ?. (В текстах подпрограмм для двух последних функций будут использоваться имена rho и theta). Функция x возвращает абсциссу точки (горизонтальную координату), y - ординату (вертикальную координату), ? - расстояние от начала координат, ? - полярный угол, отсчитываемый от горизонтальной оси. Значения x и y являются декартовыми, а ? и ? - полярными координатами точки. Другой полезной функцией является distance, возвращающая расстояние между двумя точками.
Далее спецификация АТД будет содержать такие команды, как translate (перемещение точки на заданное расстояние по горизонтали и вертикали), rotate (поворот на определенный угол вокруг начала координат) и scale (уменьшение или увеличение расстояния до начала координат в заданное число раз).
Нетрудно написать полную спецификацию АТД, включающую указанные функции и некоторые ассоциированные аксиомы. Далее в качестве примера приведены две из перечисленных функций:
x: POINT REAL
translate: POINT ? REAL ? REAL POINT
и одна из аксиом:
x (translate (p1, a, b)) = x (p1) + a
утверждающая, что для произвольной точки p1 и действительных значений a и b при трансляции точки на <a, b> абсцисса увеличивается на a.
Читатель, если пожелает, может самостоятельно завершить спецификацию АТД. В дальнейшей дискуссии подразумевается, что вы понимаете, как устроен данный АТД, вне зависимости от того, написали ли вы его полную формализацию или нет. Сосредоточим внимание на реализации АТД - классе.
- 11.4. Информационная безопасность и ее основные компоненты
- Часть I Компоненты персонального компьютера
- Виртуальные сетевые компоненты
- Объекты как компоненты VBA-приложений
- Компоненты системы МПролог
- 5.2. Компоненты Панели управления
- Программы и компоненты
- Компоненты Windows XP
- Сеть и сетевые компоненты
- Компоненты класса и АТД функции
- Глава 4 Основные компоненты ноутбука
- ГЛАВА 7 ADO.NET: дополнительные компоненты