🎮
デザインパターンについて(Strategy編)
Strategy パターン
ココでは Strategy パターンについて書いていく。
目次: https://zenn.dev/firedial/articles/f7b1a84ef2c6b8
Strategy パターンとは
Strategy パターンは一連のアルゴリズムを定義し、それぞれをカプセル化してそれらを交換可能にします。 Strategy パターンによって、アルゴリズムを使用するクライアントとは孤立して、アルゴリズムを変更できます。
状況
アヒルを(プログラム上で)飛ばすことを考える。
クラス図
コードと説明
コードは下記を参照。
抽象クラス Duck には飛ぶという振る舞い(FlyBehaviorInterface)だけ定義し、実際の動作は FlyBehaviorInterface を継承した実装クラス(FlyNoWay, FlyWithWings)で実装する。
Duck に setFlyBehavior というメソッドを定義し、動的に飛ぶという動作を変更することができる。
Discussion