如果我有一个应该都实现特定接口的模型数组,那么在循环模型时和在每个模型上调用实现的方法之前,我应该使用instanceof吗?
这是好还是坏?
答案 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