私はCanvas
いくつかのShape
オブジェクトを持っています。オブジェクトは選択可能で、 および で追跡されlastSelection
ますcurrentSelection
。
シフト+クリックで、いくつかを線で結びたいShapes
。ただし、実装ごとShape
に、接続方法は異なるはずです。
以下を書き直して、1) instanceof チェック、2) 型キャストを取り除くにはどうすればよいですか?
class Shape;
class Ellipse extends Shape;
class Line extends Shape;
class Square extends Shape;
//some more
Shape lastSelection;
Shape currentSelection;
onClick() {
if (lastSelection instanceof Ellipse && currentSelection instanceof Ellipse) {
connect((Ellipse) lastSelection, (Ellipse) currentSelection);
}
if (lastSelection instanceof Square && currentSelection instanceof Square) {
connect((Square) lastSelection, (Square) currentSelection);
}
//some more
}
connect(Ellipse e1, Ellipse 2) {}
connect(Square s1, Square s2) {}