|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ブル : [ぶる] 【名詞】 1. bull 2. (n) bull
ダブルディスパッチ(英: double dispatch)は、多重ディスパッチのひとつの形態で、2個のオブジェクトから、それに対応する実際の手続きが決まる、というものである。近年のオブジェクト指向プログラミング言語でよく見られる obj.methodName(arg, ...) というような構文では、obj に対応する1個のオブジェクトから、実行されるメソッドが決定される「シングルディスパッチ」であるわけだが、それに対して複数個のオブジェクトが関与して、多重定義されたメソッドなどから、実行される一つが決定されるのが多重ディスパッチで、多重ディスパッチに関与するオブジェクトを2個に限定したものがダブルディスパッチである。また、シングルディスパッチの言語における複数のクラス間で同様のことを実現するイディオムを指して言う場合もある。〔http://www.infoq.com/jp/articles/DoubleDispatch_0829〕 ==例== たとえば、以下のような状況でダブルディスパッチを活用することができる。 * ''二項演算子'' ベクトル×行列、スカラ×ベクトル、など、ダブルディスパッチを活用する余地は大きい。 * ''適応的衝突判定アルゴリズム'' では、通例物体により異なる方法で衝突を判定する必要がある。典型的な例では、ゲーム開発環境で、宇宙船と小惑星の衝突と、宇宙船と宇宙ステーションの衝突とは異なる方法で計算される。 * ''塗りつぶしアルゴリズム'' 重なる可能性のある 2次元スプライトの描画の際には、スプライトの重なり部分を異なった方法で描画する必要がある。 * ''人事管理'' システムでは、様々な種類の仕事を様々な種類の作業者に割り当てる。たとえば、経理担当者の型を持つオブジェクトが技術の型を持つ仕事に割り当てられた場合、 schedule アルゴリズムは割り当てを拒絶する。* ''イベント処理'' では、イベントの型とイベントを受け付けるオブジェトの種類に応じて適切な処理ルーチンを呼び出す必要がある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ダブルディスパッチ」の詳細全文を読む スポンサード リンク
|