【问题标题】:Best alternative to constants interface/class in this particular case?在这种特殊情况下,常量接口/类的最佳替代方案?
【发布时间】:2016-05-21 23:32:00
【问题描述】:

我正在学习 Java,我正在制作游戏,目前,我正在编写一些字符类,我将拥有类似的东西

(Abstract)Character ^ ^ | | PlayableChar. EnemyChar.

箭头表示继承的地方(可能有更多的类/子类)。

来自 C,定义一个充满常量的接口/不可实例化类 (MAX_HP_PLAYER, MAX_ATTACK,...) 感觉很自然,因为我需要在很多地方使用这些常量,可能不仅仅是在类中在字符层次结构下。但是,我在这里和很多地方都读到这并不是真正的好做法,而且我还没有找到在这种情况下推荐的解决方案。

有人可以帮我吗?谢谢!

【问题讨论】:

  • 您可以让它们成为public 在它们关联的类下。其他类仍然可以访问它们,但它们将位于合乎逻辑的位置。
  • MAX_HP_PLAYER 这样的东西应该是Player 类的一部分MAX_HP 你不觉得吗?为什么要使用单独的类?
  • 从 oo 的角度来看,您希望尝试在应该使用它们的上下文中定义常量,因此您可能有一个 Charater 接口,它还定义了与字符关联的常量特别是,但是当您充实层次结构时,您可以根据需要向子接口添加新常量,例如

标签: java


【解决方案1】:

我会将它们定义为final(也可能是static,这取决于您的所有角色是否都具有相同的属性,例如MAX_HP - 在这种情况下static 有意义)在您的Character 类中对他们来说最好的上下文(据我所知,常量指的是一个字符,例如MAX_HP 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2014-08-29
    相关资源
    最近更新 更多