2016-01-22 46 views
1

我称重2种不同的设计来实现卡类。使用枚举设计卡类 - 两种不同设计的优点/缺点

  • 使用2个不同的枚举:一个用于,一个用于西装
  • 仅使用1枚举

    • Ace_Of_Spades
    • Two_Of_Spades
    • (ECT)

我想到的第一个设计更加灵活,并且它可以让我们 实现我们通常会想更轻松地在卡片上使用的方法。如果我们只使用一个enum,那么诸如getRank()或比较卡片或对其进行分类的方法会更加混乱。

我想知道是否有人能够让我更深入地了解设计2与设计1相比的优缺点?

谢谢。

+2

什么让你甚至可以考虑2号的设计? –

+0

这更多的是一种思维练习,我正在努力学习如何编写好的软件/选择优秀的设计。 –

+0

你可以看看这个文档:https://docs.oracle.com/javase/8/docs/technotes/guides/language/enums.html 我相信你可以找到它有用 –

回答

0

我会选择第一个选项。这是一张卡的两个不同属性,我没有看到将它们存储在一起的任何理由。让它们分开更加灵活。

总体来说,我觉得一个字段应该描述类的唯一一个特性,所以像“suitAndRank”字段是定义错误