ダブルディスパッチ
あるメソッドの引数として渡されたオブジェクトに対して、自分自身を引数として別のメッセージを送り返すプログラミング技法。
マルチディスパッチの特別な例。
Double dispatch - Wikipedia
ダブル・ディスパッチ~ 典型的なオブジェクト指向プログラミング・イディオム ~
複数のデータ型が混在している際に、異なる動作をさせたいとき
その際、データ型そのものに動作を紐付けたり、複雑な条件分岐を用いることはしたくないとき
そんなときにダブルディスパッチ
ダブルディスパッチを用いるとデータ構造と処理を分離することができる
Visitorパターンが典型例