Использование внешних программ

Использование внешних программ

Внешние программы являются частью ОО-метода, помогая сочетать старое ПО с новым. Любой метод проектирования ПО, допускающий возможность повторного использования, должен допускать программный код, написанный на других языках. Трудно было бы убедить потенциального пользователя, что надо отказаться от всего существующего ПО, поскольку с этой минуты начинается повторное использование.

Открытость остальному миру - требование большинства программных продуктов. Это можно назвать принципом скромности: авторы новых инструментов должны дать возможность пользователям иметь доступ к ранее имевшимся возможностям.

Внешние программы также необходимы для обеспечения доступа к аппаратуре и возможностям операционной системы. Типичный пример - класс файлов. Другой пример - класс ARRAY, чей интерфейс рассматривался в предыдущих лекциях, и чья реализация основана на внешних программах: процедура создания make использует программу распределения памяти, функция доступа item использует внешний механизм для быстрого доступа к элементам массива, и т.д.

Эта техника обеспечивает ясный интерфейс между ОО-миром и другими подходами. Для клиентов внешняя программа - это просто программа. В примере, программа на С _char_write обрела статус компонента (feature) класса, дополнена предусловием и постусловием и получила стандартное имя put. Возможности, внутренне опирающиеся на не ОО-механизмы, получают новую упаковку абстрактных данных, так что участники ОО-мира начинают рассматривать их как законных граждан сообщества, и их низкое происхождение никогда не упоминается в "изысканном обществе". ("Изысканное общество" не означает бесклассовое.)

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

3.2.1.7. Использование персональных программ распределения

Из книги автора

3.2.1.7. Использование персональных программ распределения Набор функций с malloc() является набором общего назначения по выделению памяти. Он должен быть способен обработать запросы на произвольно большие или маленькие размеры памяти и осуществлять все необходимые учетные


Пример: использование обработчиков завершения для повышения качества программ

Из книги автора

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


ПРИЛОЖЕНИЕ А Использование примеров программ

Из книги автора

ПРИЛОЖЕНИЕ А Использование примеров программ На Web-сайте книги (http://www.awprofessional.com/titles/0321256190) находится zip-архив, который содержит исходные тексты всех примеров программ, а также соответствующие заголовочные файлы, служебные функции, файлы проектов и исполняемые файлы. Ряд


Использование констант внешних объектов

Из книги автора

Использование констант внешних объектов Для того чтобы в сценарии обращаться по имени к константам, определенным во внешних объектах, не создавая экземпляров самих объектов, необходимо сначала получить ссылку на эти объекты с помощью элемента <reference>.В листинге 3.10


Использование программ поддержки NetBEUI

Из книги автора

Использование программ поддержки NetBEUI Пакет, предназначенный для поддержки стека NetBEUI, содержит файл README, в котором полностью описан процесс инсталляции. Установка пакета может быть выполнена двумя способами. Следуя одному из них, надо отредактировать файл Makefile, указав в


15.5.5. Параметры внешних программ

Из книги автора

15.5.5. Параметры внешних программ ftp_user email-адресУказанный здесь email будет использоваться вместо пароля при анонимном доступе к ftp-серверам. dns_nameservers список IP-адресовЗначение данного параметра используется вместо того списка DNS-серверов, который определен в файле /etc/resolv.conf;


18.5.5. Параметры внешних программ

Из книги автора

18.5.5. Параметры внешних программ В конфигурационном файле squid.conf могут быть заданы следующие параметры внешних программ и сервисов:? ftp_user email-адрес — этот email-адрес будет использоваться вместо пароля при анонимном доступе к ftp-серверам;? dns_nameservers список IP-адресов — этот


1.2.5. Использование сеансов. Автозапуск программ и сохранение сеанса

Из книги автора

1.2.5. Использование сеансов. Автозапуск программ и сохранение сеанса Разгар рабочего дня. Запущено много программ, открыто много документов. Вам нужно отлучиться до конца дня, поэтому нужно выключить компьютер. Вам не хочется завтра открывать все эти документы заново?


Использование внешних объединений

Из книги автора

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


14.1. Запуск внешних программ

Из книги автора

14.1. Запуск внешних программ Никакой язык не может использоваться в качестве «клея», если он не позволяет запускать внешние программы. В Ruby для этого есть несколько способов.Не могу не обмолвиться о том, что перед запуском внешней программы неплохо бы понять, что она