1

参照用のリンクを見つけてください: JavaWorld の記事「Strategy for success」

私の質問は、抽象クラス自体でそれらの抽象メソッドを宣言できるのに、なぜ別のインターフェースを持ち、それを抽象クラスに実装する必要があるのですか?

元画像、

public interface Border(){
      paintBorder();
      getBorderInsets();
      isBorderOpaque();
 }


public class abstract AbstractBorder implements Border(){
 .....
}

代わりに、次のような抽象クラスを持つことができます

public class abstract AbstractBorder {
      paintBorder();
      getBorderInsets();
      isBorderOpaque();
 }

なぜインターフェイスを使用するのですか?必要性は何ですか?

4

3 に答える 3

0

クラスではなく、インターフェースに適した実践的なプログラミングです。ストラテジーパターンでは、アイデアは「ストラテジー」のインターフェースを持つことであり、実行時に、残りのコードの多くを変更せずに、変更せずにストラテジー(インターフェースを実装するクラス)を変更できます。

これは、コードをより柔軟で強力にするSOLIDの原則の良いスタートです。

githubに戦略パターンの例があり、オブジェクト「Cavaleiro」(英語ではKnight)が実行時に変更されています。

そのために、クラスのオブジェクトではなく、インターフェイスを作成して使用しました。これにより、「戦略」を簡単に変更できます。

于 2013-03-01T11:42:34.067 に答える
0

これは、私が Java を始めたときに考えたことでもあります。非常に詳細な回答がここにあります。さらに明確にする必要がある場合は、コメントしてください。

于 2013-03-01T11:36:52.643 に答える