什么设计模式处理每个继承类的组合?

时间:2016-03-30 07:54:17

标签: inheritance design-patterns language-agnostic polymorphism

我有一个抽象类,其中有一些表示形状的继承类,我想测试碰撞。现在,这是我的(Java)代码:

public abstract class Shape {
  public abstract boolean collision(Rectangle rectangle);
  public abstract boolean collision(Circle circle);
}

public class Rectangle extends Shape {
  // implementation of both abstract methods
}

public class Circle extends Shape {
  // implementation of both abstract methods
}

我在代码中看到了缺陷:如果我想添加另一个子类,我必须修改每个类,比如Triangle。更不用说父类必须知道它的所有子节点(如@deceze指出的那样)。

我仍然希望确保每次碰撞都是可能的(Rectangle-Rectangle,Circle-Circle,Rectangle-Circle和Circle-Rectangle,以及Triangle将引入的5个等等)。

我有没有想到的设计模式可以很好地解决这个问题?

0 个答案:

没有答案