今日の勉強

アルゴリズムを実装するクラスとそれを使うクラスを分ける。それによってアルゴリズムを交換可能になる。

これは非常に分かりやすい。例にもあるとおり、将棋の難易度を変更するゲームがあるとすると、その難易度によってアルゴリズムをごっそりと入れ替えられるようにするデザインパターンのこと。実際に使ったことあるかな?すぐには思いつかないなぁ。