早两天遇到一道singleton的问题。请问什么是singleton?常量是不是单体?主要是想问怎么用,什么时候用,为什么要用?

解决方案 »

  1.   

    对于一个类,只存在一个实例称为singleton模式.特点是构造方法是private的.只希望有一个实例的场合使用(费话).如:同一时刻只希望运行一个窗口程序.
      

  2.   

    有几种实现方法,Google搜索可以找到至于为什么要使用:
    1,某些重量级的对象,多次被实例化耗费资源严重,这样就需要一个单体机制来控制;
    2,共享对象,保存了公用的数据,不过要注意使用互斥访问机制;
    3,暂时也就想到这么多了,请补充
      

  3.   

    singleton模式的目的是保持封装类在运行期只有一个实例,例如我们写一个Log工具类,便希望他只有一个实例。
    下面这个是封装singleton模式的代码:
    public final calss Log{
       private Log() {} //保证不可能在外部生成实例}
      

  4.   

    singleton模式的目的是保持封装类在运行期只有一个实例,例如我们写一个Log工具类,便希望他只有一个实例。
    下面这个是封装singleton模式的代码:
    public final calss Log{
       private static Log log;   private Log() {} //保证不可能在外部生成实例   //自己生成实例,注意多线程问题
       public synchronized static Log getDefault(){
           if(log == null)
                log = new Log();
           return log; 
       }}