当对象可以以多种方式使用时构造界面

时间:2017-05-08 23:29:01

标签: java oop interface

I asked a question关于如何构造接口,因为对象可以以多种方式使用。给出的答案很好,但它并没有真正解决我的主要问题。我决定尝试自己,然后回来一个更清晰的例子/问题。

以此字符界面为例:

public interface Character {
   void attack(Weapon toAttackwith, Character enemy);
   void reload(Reloadable reload, Replenishitem replenish);
}

public interface Weapon {
    void attack();
}

public interface Reloadable {
    void replenish();
}

和实施:

public final class ReloadableWeapon implements GameItem, Reloadable, Weapon {

    @Override
    public void attack() {}

    @Override
    public void replenish() {}
}

游戏武器可用于攻击敌人,但并非所有武器都可以重新加载。所以在我的角色interface中创建了一个名为reload的方法,其中包含某些parameters。重新加载并不一定只是武器,魔药瓶/容器可以重新加载(重新填充,两个不同的单词用于相同的行为)。

在角色interface中添加重载方法是否被认为是代码味?

0 个答案:

没有答案