náhled|370px|Zpětné volání směřuje zpět k původnímu volajícímu. Callback neboli zpětné volání je způsob programování, při kterém se předává reference na funkci z jednoho kontextu (klienta) do jiného (poskytovatele), aby poskytovatel mohl v určité situaci vyvolat funkci klienta. Zatímco běžným postupem je, že klient (např. program) volá služby poskytovatele (např. operačního systému), v tomto případě je tomu naopak.

Funkce, která přijímá parametr pro zpětného volání, může být navržena tak, aby provedla zpětné volání těsně předtím, než provede návrat do volajícího; obvykle si však poskytovatel odkaz na zpětné volání uloží, aby zpětně volanou funkci mohl vyvolat později. Pokud poskytovatel vyvolá zpětné volání ve stejném vlákně jako klient, jedná se o blokující, neboli synchronní volání. Pokud poskytovatel vyvolá zpětné volání v jiném vlákně, pak je volání neblokující neboli asynchronní.

Zpětné volání lze přirovnat k zanechání telefonního čísla v servisu, na které servis zákazníkovi oznámí, že práce byla dokončena nebo si vyžádá potvrzení dalšího postupu.

Rozdíl mezi obecným odkazem na funkci a callbackem může být nepatrný, a někdy se tyto termíny používají jako synonyma, ale jejich rozlišování obecně závisí na záměru programátora. Pokud je záměr podobný telefonickému zpětnému volání – kdy původně volaný účastník volá zpět původnímu volajícímu – pak jde o callback.

Odkazy

Reference

Související články Command Smyčka událostí Událostmi řízené programování

Externí odkazy Basic Instincts: Implementing Callback Notifications Using Delegates - MSDN Magazine, prosinec 2002 Implement callback routines in Java Implement Script Callback Framework in ASP.NET 1.x - Code Project, 2. srpna 2004 Rozhraní členských funkcí C++ s knihovnami jazyka C (archivováno z originálu 6. července 2011) Style Case Study #2: Generic Callbacks

Kategorie:Koncepty v programovacích jazycích Kategorie:Programovací konstrukce Kategorie:Řízení běhu