例えばゲームの当たり判定でも、

自機が爆弾に当たれば爆発する、
自機が仲間にあたっても何も起こらない。
自機がパワーアップアイテムに当たればパワーアップする
っていうのを実装するとき、

この処理ををどこに実装するかって問題がある。
自機に実装すればいいと思うが、
そうすると、自機は、爆弾や見方やパワーアップアイテムという
情報を知らないといけない。
つまり外部のクラスに依存してしまうということ。

これを
接触関数(自機、爆弾) {
 自機.爆発();
 爆弾.爆発();
}

接触関数(自機、パワーアップアイテム) {
 自機.パワーアップ();
 パワーアップアイテム.消滅();
}

接触関数(自機、仲間) {
 なにもしない
}

とできれば、シンプルに実装できる。