いくつかの宿題として、ストラテジーとテンプレート メソッドの両方の設計パターンを組み合わせて相互に補完し、結果としてよりカスタマイズ可能にする例 (クラスを含む) を考案する必要があります。または、「テンプレート メソッドを使用して、さまざまな戦略を処理するためのカスタマイズ性を高めます」。
Dog
多くの読書と最初の混乱の後、私は 2 匹の動物をクラスとして持ち、それらの両方にインターフェースを使用して特定の機能を実装させるというアイデアを思いつきました (つまりSnake
、犬は歩き、ヘビは滑ります)。それぞれが独自の移動機能を個別に実装しているため、これは戦略パターンの部分だと思いました。
これに Template Method パターンを組み込むために、実装しているクラスをカスタマイズ可能にするためにさらにサブクラス化するようにしようと思いました。これは質問に沿っているようです。だから私はクラスとして持っていて、それを and にサブクラス化したいと思っMover
た. しかし、これは各動物がスーパークラスまたはサブクラスの1つを実装するので、私を混乱させましたか? また、サブクラスはインターフェイスですが、スーパークラスは抽象ですか? それともすべてインターフェースですか?Walk
Slither
Mover
私の例は理にかなっていますか?