Внешние программы
Внешние программы
ОО-системы состоят из классов, образованных компонентами (features), в частности, подпрограммами, содержащими инструкции. Что же является правильным уровнем модульности (granularity) для интегрирования внешнего программного продукта?
Конструкция должна быть общей - это исключает классы, существующие только в ОО-языках. Инструкции - слишком низкий уровень. Последовательность, в которой две ОО-инструкции окаймляют инструкцию на языке С:
-- только в целях иллюстрации
create x l make (clone (a))
(struct A) *x = &y; /* A piece of C */
x.display
трудно было бы понять, проверить, сопровождать.
Остается уровень компонентов. Он разумен и допустим, поскольку инкапсуляция компонентов совместима с ОО-принципами. Класс является реализацией типа данных, защищенных скрытием информации. Компоненты - единицы взаимодействия класса с остальной частью ПО. Поскольку клиенты полагаются на официальную спецификацию компонентов (краткую форму) независящую от их реализации, внешнему миру не важно, как написан компонент - в ОО-нотации или нет.
Отсюда вытекает понятие внешней программы. Внешняя программа имеет большинство признаков нормальной программы: имя, список аргументов, тип результата, если это функция, предусловие и постусловие, если они уместны. Вместо предложения do она имеет предложение external, определяющее язык реализации. Следующий пример взят из класса, описывающего символьные файлы:
put (c: CHARACTER) is
-- Добавить c в конец файла.
require
write_open: open_for_write
external
"C" alias "_char_write";
ensure
one_more: count = old count + 1
end
Предложение alias факультативно и используется, только если оригинальное имя внешней программы отличается от имени, данного в классе. Это случается, когда внешнее имя недопустимо в ОО-нотации, например, имя, начинающееся с символа подчеркивания (используемое в языке С).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Внешние ссылки
Внешние ссылки Внешними называют ссылки на объекты, расположенные вне текущей страницы. Это могут быть картинки, другие страницы сайта, мультимедийные приложения.Основой внешних ссылок является URL-адрес объекта, на который вы собираетесь сослаться.Для создания
Внешние объекты
Внешние объекты В рабочем проекте XSLT 1.1 для поддержки функций расширения появился новый тип данных — внешний объект (external object). Переменной XSLT, о которой пойдет речь в главе 9, может быть присвоен внешний объект — так же, как и один из четырех типов данных XPath, поддерживаемых
Внешние факторы
Внешние факторы Внутренняя оптимизация сайта – вотчина его владельца или администратора. Неудивительно, что веб — мастера из числа – выразимся иносказательно – «моральных релятивистов» научились оперировать не совсем честными методами и выдавать порой
11.3. Внешние DNS-серверы
11.3. Внешние DNS-серверы Если в локальном файле /etc/hosts не найдено записи о нужном имени, то компьютер должен запросить эту информацию у DNS-сервера. Для этого нужно знать IP-адрес этого самого сервера. Как система его узнает? Из файла /etc/resolv.conf, который должен выглядеть примерно
Внешние тестировщики
Внешние тестировщики В Google работает много талантливых ребят, но мы отлично понимаем, что и наши возможности имеют пределы. Новые амбициозные проекты появляются без предупреждения, и им часто нужны узкоспециализированные профессионалы для тестирования. Мы не всегда
Внешние документы
Внешние документы Для осуществления оперативных связей с организациями и гражданами в случае невозможности бездокументного обмена (личного или по телефону) составляются письма. При необходимости срочной передачи информации составляются телефонограммы или факсы, реже
Внешние соединения
Внешние соединения В отличие от внутреннего соединения оператор внешнего соединения выбирает строки участвующих таблиц, даже если в некоторых случаях не найдено соответствие. Когда полное соответствие строк не может быть сформировано соединением, тогда
Глава 12. Внешние команды, программы и утилиты
Глава 12. Внешние команды, программы и утилиты Благодаря стандартизации набора команд UNIX-систем, сценарии, на языке командной оболочки, могут быть легко перенесены из системы в систему практически без изменений. Мощь сценариев складывется из наборв системных команд и
14.4 Внешние определения
14.4 Внешние определения программа: внешнее_определение внешнее_определение программавнешнее_определение: определение_функции описаниеопределение_функции: спецификаторы_описания opt описатель_функции инициализатор_базового opt тело_функцииописатель_функции: описатель (
Внешние устройства
Внешние устройства Уверен, всем читателям пригодятся утилиты, работающие с приводами оптических дисков, flash-накопителями, принтерами и другими периферийными устройствами. В данном разделе представлены небольшие, но очень полезные программы.Nero
Внешние повреждения
Внешние повреждения Внешние повреждения – то, на что необходимо обратить внимание еще до того, как вы заплатите деньги. В первую очередь осмотрите корпус ноутбука на наличие трещин. По большому счету о подобных дефектах вам должны будут сказать сразу. Кроме того, если они
Внешние ТВ-тюнеры
Внешние ТВ-тюнеры Внешние тюнеры характеризуются тем, что изготавливаются в отдельном корпусе, а не в виде платы, и выглядят более эстетично, чем набор микросхем, припаянных к плате. Тюнеры этого типа могут подключаться к компьютеру или напрямую к монитору.Все
Внешние DVB-тюнеры
Внешние DVB-тюнеры Внешние DVB-тюнеры представляют собой небольшое устройство для приема сигнала со спутниковой антенны и обработки его в цифровую форму. Обычно эти устройства подключаются к компьютеру посредством интерфейса USB2.0, но также существуют специальные модели
2.2. Внешние устройства
2.2. Внешние устройства Внешние компьютерные комплектующие завершают формирование того, что в итоге называется компьютером. Сегодня существует большое количество таких устройств, разнообразных по исполнению и назначению. Без некоторых из них работа компьютера