我应该总是使用instanceof - 模型数组

时间:2014-02-28 17:05:18

标签: design-patterns

如果我有一个应该都实现特定接口的模型数组,那么在循环模型时和在每个模型上调用实现的方法之前,我应该使用instanceof吗?

这是好还是坏?

2 个答案:

答案 0 :(得分:0)

为了上帝的缘故! NEVER!

你已经拥有了所需的方法接口,你不想实例化它们,没有理由。事实上,(几乎)从来没有理由使用instanceof:D。

答案 1 :(得分:0)

  

这是好还是坏?

不好:)但是如果你只有一个阵列,你别无他法。但我建议实现一个包含许多不同阵列的存储:

public class Field {
    private Shape[] shapes = ...
    private Circle[] circles = ...
    private Rectangle[] rectangles = ...

    public void addCircle(Circle c) {
        shapes[...] = c;
        circles[...] = c;
    }

    public Shape[] getShapes() {
        return shapes;
    }

    public Circle[] getCircles() {
        return circles;
    }

}

...

field.getShapes(n).draw(); // for both Circle and Rectangle available

int radius = field.getCircles(m).getRadius()); // for Circle only