Jump to content

Функция-обертка

(Перенаправлено из Wrapper (программирование) )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

public class Test implements LinkedList, HashSet{

@Override
//contains data members and data methods
//covariant return

}

Библиотечные функции и системные вызовы

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

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

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

Вспомогательная функция

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

Вспомогательная функция — это функция, которая группирует части вычислений , присваивая описательные имена и позволяя повторно использовать вычисления. [6] Хотя не все оболочки являются вспомогательными функциями, все вспомогательные функции являются оболочками, и заметное использование вспомогательных функций — группирование часто используемых операций — происходит в динамической двоичной трансляции , в которой вспомогательные функции определенной архитектуры используются для трансляции инструкций из одной инструкции. установить в другой. [7]

См. также

[ редактировать ]
  1. ^ Реселман, Боб; Писли, Ричард; Прухняк, Уэйн (1998). Использование Visual Basic 6 . Que. п. 446. ИСБН  9780789716330 .
  2. ^ Учебники по Java
  3. ^ Стивенс, Ричард; Феннер, Билл; Рудофф; Эндрю М. (2003). Сетевое программирование UNIX . Аддисон-Уэсли. стр. 5–6, 29. ISBN.  9780131411555 .
  4. ^ «syscalls(2) — страница руководства Linux» . man7.org . Проверено 25 апреля 2020 г.
  5. ^ «Системные вызовы (Библиотека GNU C)» . www.gnu.org . Проверено 25 апреля 2020 г.
  6. ^ Фислер, Кэти (2005). «CS 1101: Вспомогательные функции» . Вустерский политехнический институт . Архивировано из оригинала 7 мая 2021 года . Проверено 17 ноября 2021 г.
  7. ^ Ван, Вэньвэнь (3 марта 2021 г.). Встраивание вспомогательной функции при динамической двоичной трансляции . CC: Создание компилятора. Нью-Йорк, США: Ассоциация вычислительной техники . п. 107. дои : 10.1145/3446804.3446851 . ISBN  978-1-4503-8325-7 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d43269296761b12774609ddf60f99c8a__1718360340
URL1:https://arc.ask3.ru/arc/aa/d4/8a/d43269296761b12774609ddf60f99c8a.html
Заголовок, (Title) документа по адресу, URL1:
Wrapper function - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)