|
|
1
1
设计每个计数器以了解高阶计数器,因此您只需在一个位置与计数器交互。您可以使用具有指定位数的构造函数来创建少一位的高阶计数器。当递增计数器时,可以将其与所使用的基数(每位数的值数)进行比较,然后重置为零并递增较高的计数器。也可以递归地获取值。 毫无例外地进行这种设计很好。当出现超出正常预期的异常情况时,应使用例外情况。例如,当文件读取失败,或网络套接字无法连接时。您不应该对正常事件(如反滚动)使用异常。
重置方法应将所有计数器设置回零,这是初始化计数器时应具有的默认值。事实上,重置方法可以使用相同的链接,以便在调用
您可以在此相同的设计基础上抽象出概念,例如用于表示每个值的特定字符。您还可以创建一个函数,递归地将整个计数器集获取为字符串,为每个值的字符使用一个抽象函数,以便您可以像设计的那样对其进行子类化。 public class Key {
private Key higherKey;
private int base;
private int value;
public Key(int base, int numberOfDigits) {
this.base = base;
if (numberOFDigits > 1)
this.higherKey = new Key(base, numberOfDigits - 1);
this.value = 0;
}
public int getNumericValue() {
int value = this.value;
if (this.higherKey != null)
value += (this.higherKey.getValue() * this.base);
return value;
}
public void increment() {
this.value++;
if (this.value >= this.base) {
this.value++;
if (this.higherKey != null)
this.higherKey.increment();
}
}
}
|
|
|
2
0
帮自己一个忙,创建一些用例,这样就清楚了你需要什么。如果你只是在谈论N位数字计数器,那么你所拥有的似乎有些过头了。但也许不是。 |