所以在这个给定的场景中,我并不完全确定如何以更多的OOP方式实现它。
鉴于以下背景:
在我的EntityManager中,我检查我的鼠标是否悬停在实体上。如果是这种情况,我会渲染一个叠加层,显示一个带有实体名称的面板。
除了名称之外,我还希望显示一些基本属性,例如' health'也许' power / max hit'或者其他的东西。静态实体没有战斗属性。然而,生物会这样做,但是因为我返回了一个实体,我会检查实体是否是' instanceof'生物,如果是这样:绘制战斗统计数据。否则只需绘制实体的名称。
有没有更好的,更多的OO方式来设计这个结构?我已经读过可以通过多态/ OO设计来避免instanceof。
相关代码段:
if(hoveringEntity instanceof Creature) {
hoveringEntity = (Creature) hoveringEntity;
// Custom Util class to draw a String
Text.drawString(g, "Max hit: " + getDamage(hoveringEntity), x, y, true, Color.YELLOW, Assets.font14);
}