我正在用Java做一个简单的游戏,对此我有疑问。
假设每个游戏角色都有一个界面
public interface Entity{
Vector2 getPosition();
/* More methods...*/
}
然后,我想创建一个名为Automata的接口,该接口由使用AI的每个类实现(这可能是Entity的特例,但由于可重用性,我认为是分开的)
public interface Automata{
Vector2 getPosition(); // The AI stuff needs to know this
/* More methods needed for AI (some may also be the same as Entity)... */
}
我认为这促进了模块化,因为每个接口都描述了其方法,而不必担心其他接口的存在,但是在我撰写本文时,我感觉自己在重复自己,所以拥有这两个(或可能更多)接口用相同的方法不好吗?
答案 0 :(得分:6)
如果两个接口之间都有共同点,则可以定义一个父接口,然后Entity
和Automata
可以对其进行扩展。
让我在下面进行说明:
interface AI {
Vector2 getPosition();
}
interface Entity extends AI { }
interface Automata extends AI { }
这样,作为AI一部分的任何其他接口都无需显式添加其他方法,而只需扩展AI