我有这个代码:
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 ...(我们正在从接口转换为类 .. 似乎有点尴尬)......问这个问题的另一种方法是:有没有任何其他方式来设置此代码?干杯!