Функция-заглушка

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

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

Пример

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

function ReadThermometer(Source source)
    return 28
end function

Связанные понятия

Распределённые вычисления

В сфере распределённых вычислений термин «заглушка» применяется для объектов, имитирующих работу существующего кода или процедур, например, удалённой процедуры — схоже с имитатором (англ. mock object). Такие заглушки полезны при портировании программ.

В терминологии удалённых вызовов методов (англ. Remote Method Invocation, RMI) клиентская заглушка взаимодействует с скелетом на стороне сервера[3].

Windows и MS-DOS

В Windows и MS-DOS заглушка функционирует как прослойка — небольшой интерфейсный код, сохраняющийся в обычной памяти после самоперемещения основной части резидентного драйвера в Верхняя память, расширенную или дополнительную память; а также служит для связи перемещённого кода с реальным режимом DOS совместно с расширителями DOS (например, DPMI, DPMS, CLOAKING, NIOS).

Примечания

  1. Nell B. Dale. Programming in C++ : [англ.] / Nell B. Dale, Chip Weems. — Jones & Bartlett Learning, 2004. — P. 308. — ISBN 978-0-7637-3234-9.
  2. stub (англ.). Webopedia. Webopedia (23 марта 1998). Дата обращения: 28 августа 2012.
  3. Freeman, Eric. Head First Design Patterns : [англ.] / Eric Freeman, Elisabeth Freeman, Kathy Sierra … [et al.]. — O'Reilly, 2004. — Vol. 1. — P. 440. — ISBN 978-0-596-00712-6.

Литература

Nell B. Dale. Programming in C++ : [англ.] / Nell B. Dale, Chip Weems. — Jones & Bartlett Learning, 2004. — P. 308. — ISBN 978-0-7637-3234-9. Freeman, Eric. Head First Design Patterns : [англ.] / Eric Freeman, Elisabeth Freeman, Kathy Sierra … [et al.]. — O'Reilly, 2004. — Vol. 1. — P. 440. — ISBN 978-0-596-00712-6.

Ссылки