1

メソッド drawShape() を持つクラス A があり、メソッド drawSquare() を持つ別のクラス B があるとしましょう。今度は 3 番目のクラス C があります。私のクラス CI では、クラス A と B のこれらのメソッドの両方が必要です。両方を同時に取得するにはどうすればよいですか?

このために、私は次のアプローチを思い付きました: Java は複数のクラス継承をサポートしていません:

Class.interface IA {
   void drawshape();
}

inerface IB {
   void drawsquare();
}

class A implements IA {
    ...
}

class B implements IB {
    ...
}

class C implements IA, IB {
   private A a;
   private B b;

   void drawshape() {
     a.drawshape()
   } 

   void drawsquare() {
     b. drawsquare()
   }
}

示されているアプローチは、継承よりも有利な構成の原則に基づいています。それが正しいアプローチかどうか教えてください。このパターンは戦略パターンとしても知られています。それが正しいか、私が従うアプローチかを教えてください。このアプローチに関するコメントがあればアドバイスしてください。

4

1 に答える 1

2

はい、この場合、合成はおそらく最良のアプローチです。場合によっては、1 つのクラスから継承し、他のクラスで構成を使用したい場合があります。

于 2013-02-20T15:13:58.713 に答える