Java 使用枚举设计卡片类-两种不同设计的优缺点

Java 使用枚举设计卡片类-两种不同设计的优缺点,java,enums,Java,Enums,我正在权衡两种不同的设计来实现一个卡片类 使用两个不同的枚举:一个用于排名,一个用于套装 仅使用1个枚举 黑桃王牌 两个黑桃 (ect) 我认为第一种设计更灵活,它允许我们 实现我们通常希望在卡片上更容易使用的方法。如果我们只使用一个enum,那么像getRank()这样的方法或比较卡片或对卡片排序的方法会有点混乱 我想知道是否有人能给我更多关于设计2相对于设计1的优点/缺点的见解 谢谢。我选择第一个选项。这是一张卡的两个不同属性,我看不出有任何理由将它们存储在一起。把它们分开要灵活得多

我正在权衡两种不同的设计来实现一个卡片类

  • 使用两个不同的枚举:一个用于排名,一个用于套装
  • 仅使用1个枚举

    • 黑桃王牌
    • 两个黑桃
    • (ect)
我认为第一种设计更灵活,它允许我们 实现我们通常希望在卡片上更容易使用的方法。如果我们只使用一个
enum
,那么像
getRank()
这样的方法或比较卡片或对卡片排序的方法会有点混乱

我想知道是否有人能给我更多关于设计2相对于设计1的优点/缺点的见解


谢谢。我选择第一个选项。这是一张卡的两个不同属性,我看不出有任何理由将它们存储在一起。把它们分开要灵活得多


一般来说,我认为一个字段应该只描述类的一个特征,所以像“SuiteAndRank”这样的字段从定义上来说是错误的

我会选择第一个选项。这是一张卡的两个不同属性,我看不出有任何理由将它们存储在一起。把它们分开要灵活得多


一般来说,我认为一个领域应该只描述一个类的特性,所以一个字段“Suutand and Read”的定义是错误的

什么使你甚至考虑第二个设计?它更像是一个思维练习,我正在努力学习如何编写好的软件/选择好的设计。你可以看看这个文档:我相信你会发现它很有用第二种情况下
getRank()
应该返回什么类型?另外,考虑到有两种类型的卡片集。什么使你甚至考虑到第二种设计?它更像是一种思维练习,我试图学习更多关于如何编写好的软件/选择好的设计。你可以看看这个文档:我相信你可以发现它应该是什么样的类型应该<代码>地理链接()。第二种情况下是否返回?此外,考虑到有两种类型的卡片组。