![](/img/trans.png)
[英]Sending over Interface Object from method call hiding implementation super class on server via RMI?
[英]Interface implementation hiding method
我需要有关接口的建议。 我有一个叫单位的类,可以攻击其他单位。 攻击可以是空中或地面。 我需要一种称为attack()
方法来实现攻击。 有些单位只能攻击地面单位,某些空中单位或两者。
到目前为止,这是我提出的:
public interface Attack() {
public void attack(SCObject object);
}
public interface GroundAttack() extends Attack {
public void groundAttack(SCObject object);
}
public interface AirAttack() extends Attack {
public void airAttack(SCObject object);
}
我可以有不同的单位:
Unit extends SCObject implements GroundAttack {
}
Unit extends SCObject implements AirAttack {
}
Unit extends SCObject implements AirAttack, GroundAttack {
}
问题在于此实现将显示两个地面选项和空中选项,而我只希望attack()
方法可见。 您可以提出解决方案吗?
我会用
public interface Attack {
public boolean canAttack(SCObject object);
public void attack(SCObject object);
}
考虑到您不想暴露这种行为,我认为没有理由采用特定的地面或空袭方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.