我想在扑克中实现手牌范围,基本上是一组两张牌(=手牌)。
由于范围可以容纳很多手,我想创建“默认”范围并从那里调整我的范围。我想通过以下方式做到这一点:
- 握住我的射程范围的范围类
- 为预定义范围创建内部枚举
有更好的方法吗?我在范围类中嵌套了枚举,以通过路径Range.Predefined来提高可读性。*。尽管如此,它感觉有点笨拙,特别是我设置范围的部分。
public class Range{
ArrayList<Hand> range;
public Range(ArrayList<Hand> r){
this.range = r;
}
public void addHandToRange(Hand hand){
//add a hand to range
}
public void removeHandFromRange(Hand hand){
//remove a hand from range
}
public enum Predefined{
RANGE_1, RANGE_2, RANGE_3;
ArrayList<Hand> predefinedRange;
//some code to set up predefined ranges 1-3
public ArrayList<Hand> getRange() {
//getRange
}
}
}
然后我可以使用预定义的范围设置我的范围,并从那里开始(但是很多代码,只使用枚举方法......):
Range myRange = new Range(Range.Predefined.RANGE_1.getRange());
我宁愿有类似以下的解决方案。这需要将“Range”更改为Enum类型,我不想这样做(因为Range应该保持可变 - 应该避免使用可变的枚举)。
Range myRange = PredefinedRange.RANGE_1;
我错过了明显的吗?
答案 0 :(得分:0)
为什么你需要使用枚举?
你可以让Range类保留一些公共静态最终Range变量。
public class Range{
public static final Range TOP_PAIR_RANGE = new Range(...)
public static final Range SUITED_CONNECTOR_RANGE = new Range(...)
public static final Range ACE_SUITED_RANGE = new Range(...)
...
}
然后引用它
Range myRange = Range.TOP_PAIR_RANGE;