在我最初设计它下面的代码片段中,“下一个号码”需要在整个应用程序的执行发送下一个递增的值。 所以,我提出了一个类单。 然而,随着需求最近的一些变化,我需要做的“未来号”复位。 我只是增加了一个复位的方法来做到这一点。 但是,它肯定违反了Singleton模式,也是我知道这不是初始化静态成员这样一个好主意。
你觉得我应该怎么办呢?
public final class GetNextNumber {
private static GetNextNumber instance;
private static Integer nextNumber=1;
private GetNextNumber() {
}
public static synchronized GetNextNumber getInstance() {
if(instance==null){
instance = new GetNextNumber();
}
return instance;
}
protected Integer getNextNumber(){
return nextNumber++;
}
protected synchronized void reset(){
nextNumber=1;
}
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
}