Функция-оболочка

редактировать

A Функция-оболочка - это подпрограмма (другое слово для function ) в библиотеке программного обеспечения или компьютерной программе, основная цель которых - вызвать вторую подпрограмму или системный вызов с небольшим или без дополнительных вычислений. Функции оболочки используются для облегчения написания компьютерных программ за счет абстрагирования деталей базовой реализации подпрограммы.

Содержание
  • 1 Цель
    • 1.1 Удобство программирования
    • 1.2 Адаптация интерфейсов класса / объекта
    • 1.3 Тестирование кода
    • 1.4 Множественное наследование
  • 2 Библиотечные функции и системные вызовы
  • 3 См. также
  • 4 Ссылки
Назначение

Функции-оболочки являются средством делегирования и могут использоваться для ряда целей.

Удобство программирования

Функции оболочки можно использовать для облегчения написания компьютерных программ. Примером этого является MouseAdapterи аналогичные классы в библиотеке Java AWT. Функции оболочки полезны при разработке приложений, использующих функции сторонних библиотек. Для каждой сторонней функции можно написать оболочку и использовать ее в собственном приложении. В случае изменения или обновления сторонних функций необходимо изменить только оболочки в собственном приложении, в отличие от изменения всех экземпляров сторонних функций в собственном приложении.

Адаптация интерфейсов класса / объекта

Функции оболочки можно использовать для адаптации существующего класса или объекта к другому интерфейсу. Это особенно полезно при использовании существующего библиотечного кода.

Тестирование кода

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

Множественное наследование

В языке программирования, который не поддерживает множественное наследование базовых классов, для его моделирования можно использовать функции оболочки. Ниже приведен пример части класса Java, который «наследуется» от LinkedList и HashSet. См. Метод для получения дополнительной информации о реализации.

открытый класс Test реализует LinkedList, HashSet {@Override // содержит элементы данных и методы данных // ковариантный возврат}
Библиотечные функции и системные вызовы

Многие библиотечные функции, такие как в стандартной библиотеке C, действуют как интерфейсы для абстракции из системных вызовов. Функции fork и execve в glibc являются примерами этого. Они вызывают системные вызовы lower-level fork и execve соответственно.

Это может привести к неправильному использованию терминов «системный вызов» и «системный вызов» для ссылки на вызовы библиотеки более высокого уровня, а не на системные вызовы с похожими именами, которые они заключают в оболочку.

См. Также
Ссылки
Последняя правка сделана 2021-06-21 05:36:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте