Singleton Vs静态变量

Pan*_*Pan 1 java singleton

我需要在我的应用程序中使用一个全局计数器,它会根据每个请求递增计数.我将这个计数器放在一个单独的类中,如下所示:

public class Counter{  
  private static int count = 0;  
  public synchronized static update()
  {
    count += 1;
  }  

  public synchronized static int getCount()
  {
    return count;
  }  
}
Run Code Online (Sandbox Code Playgroud)

在应用程序的整个生命周期中只存在一个计数器.因为只有一个单身人士,我可以通过单身人士获得任何好处吗?创建单个实例而不是具有静态变量的类更有意义吗?会有什么好处

Pet*_*rey 5

我会把它做成静态(字段和方法)或不.你似乎有一个必然会混淆的组合.


在这种情况下,我只会使用AtomicInteger:

public enum Counter {
    public static final AtomicInteger COUNTER = new AtomicInteger();
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以做到

import static Counter.COUNTER;

int num = COUNTER.incrementAndGet();
Run Code Online (Sandbox Code Playgroud)