0

いくつかの宿題として、ストラテジーとテンプレート メソッドの両方の設計パターンを組み合わせて相互に補完し、結果としてよりカスタマイズ可能にする例 (クラスを含む) を考案する必要があります。または、「テンプレート メソッドを使用して、さまざまな戦略を処理するためのカスタマイズ性を高めます」。

Dog多くの読書と最初の混乱の後、私は 2 匹の動物をクラスとして持ち、それらの両方にインターフェースを使用して特定の機能を実装させるというアイデアを思いつきました (つまりSnake、犬は歩き、ヘビは滑ります)。それぞれが独自の移動機能を個別に実装しているため、これは戦略パターンの部分だと思いました。

これに Template Method パターンを組み込むために、実装しているクラスをカスタマイズ可能にするためにさらにサブクラス化するようにしようと思いました。これは質問に沿っているようです。だから私はクラスとして持っていて、それを and にサブクラス化したいと思っMoverた. しかし、これは各動物がスーパークラスまたはサブクラスの1つを実装するので、私を混乱させましたか? また、サブクラスはインターフェイスですが、スーパークラスは抽象ですか? それともすべてインターフェースですか?WalkSlitherMover

私の例は理にかなっていますか?

4

3 に答える 3

0

MoverStrategy で適切な名前BeginMoveとメソッドを取得できれば、例は問題ありません。EndMove

ここ:

  • GetMoveStrategy -FactoryMethod適切な戦略を作成するためのインターフェイスを宣言する責任があります
  • MoverStrategy -Strategy
  • Move - Concrete Strategy が定義しなければならないTemplate method1 つのプレースホルダーを使用DoMove

ここに画像の説明を入力

于 2013-12-06T07:06:31.540 に答える