私はこのコードを持っています:
public interface Position {
public int getX();
public int setX(int x);
public int getY();
public int setY(int y);
}
public StandardPosition implements Position {
// STANDARD implementation of Position here
}
public abstract class Mover {
public abstract Position move ( Position originalPosition );
}
「ムーバー」とは、何かを最初の位置から最終的な位置に移動させるものです。
ここが興味深い部分です... 一部のムーバーはより複雑で、もう少し複雑な Position オブジェクトを操作します。
public class ComplicatedPosition extends StandardPosition {
// ADDS Y DIMENSION
private int y;
public int getY() { return(y); }
public void setY(int y) { this.y = y ; }
}
public class MoreComplicatedMover extends Mover {
@Override
public void Position move(Position initialPosition) {
ComplicatedPosition q = (ComplicatedPosition) initialPosition;
// Do a transformation and
// return a new position
return(q);
}
}
ここでの私の質問は ...Position から ComplicatedPosition へのキャストを回避する方法はありますか ...(インターフェイスからクラスにキャストしています..少しぎこちないようです) ...この質問をする別の方法は: ありますか?このコードを設定する他の方法はありますか? 乾杯 !