关于赞成组合优于继承方法,战略模式

时间:2013-02-20 15:08:11

标签: java oop inheritance composition strategy-pattern

我在一次采访中问了一个问题,就是说有一个带有方法drawShape()的A类,还有另一个带有drawSquare()方法的B类。现在有第三堂课C.在我的班级C中,我想要A和B类的这两种方法。我如何同时获得这两种方法?

为此我想出了以下方法: Java不支持多个Class继承:

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()
   }
}

所示的方法基于有利于组合而不是继承的原则。如果这是正确的方法,请告诉我。这种模式也被称为策略模式,请告知它是正确的或我正在遵循的方法。关于这种方法的任何更多评论请告知,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

是的,在这种情况下,构图可能是最好的方法。 在某些情况下,您可能希望从一个类继承并在另一个类上使用组合。