デリゲート 【delegate】 委譲

概要

デリゲート(delegate)とは、委任する、委譲する、委託する、代理を立てる、代理人、代表者などの意味を持つ英単語。IT分野では、プログラミングであるオブジェクトから別のオブジェクトへ処理を委譲することなどをデリゲートという。

プログラミングにおけるデリゲート

オブジェクト指向プログラミングの分野では、オブジェクトが一部の処理を別のオブジェクトに肩代わりさせる仕組みのことをデリゲートという。実装の一部を他のオブジェクトに分離することができる。「委譲」と訳語を用いることもある。

あるオブジェクトメソッドを呼び出した時に、自動的に別のオブジェクトの特定のメソッドを呼び出して実行する仕組みである。委譲先のオブジェクトメソッドは条件に応じて切り替えたり、追加したり入れ替えたりすることができる。

よくある応用例としてイベント処理がある。イベント発生時に呼び出されるメソッドイベントハンドラ)にデリゲートの仕組みに基づいて実行したいメソッドを登録しておけば、それらをまとめて実行することができる。

多くのプログラミング言語では、プログラムコードの特徴的なパターン(デザインパターン)としてデリゲートを実装するが、JavaScriptのプロトタイプのようにデリゲート実装に便利な仕様を活用したり、.NET言語のように言語仕様の一部としてデリゲートが用意されている場合もある。

(2023.9.4更新)