0

implements戦略パターンが の代わりにを使用するのはなぜextendsですか? StrategyA StrategyBase を想定しているためis-a、インターフェイスとして実装するよりも基本戦略を拡張することになります。

では、「extends」で戦略パターンを適用するのは間違っているのでしょうか? また、インターフェースで使用している場合の利点は何ですか?

4

2 に答える 2

2

戦略の基本型に入れる共通のコードがない場合は、インターフェイスの代わりに抽象クラスを使用しても何も達成されません。ただし、そのようなAPIのクライアントは、戦略専用のクラスを使用するように制限されます。 1つのクラスが複数のインターフェースを実装します。

于 2012-10-23T09:08:16.030 に答える
1

私の情報によると:を使用extendsすると、他のクラスを拡張できなくなります。メソッドに定義が必要でない場合は、なぜ使用しないのですかinterface

于 2012-10-23T09:03:44.537 に答える