将一个类做成单例是什么意思?

解决方案 »

  1.   

    就是该类是全局唯一,只能实例化一次。后续的使用都是使用的同一个实例。
    一般的该类的构造函数是private的,该类对外暴漏一个getInstance()方法,可以得到该类的实例。
    例如:public class Single
    {
    private Single instance = null; private Single()
    { } public Single getInstance()
    {
    if (instance == null)
    {
    return new Single();
    }
    return instance;
    }
    }
    这只是其中的一个方法,还有其他的,可以看看java设计模式。
      

  2.   

    这样会更好些
    public class Single
    {
    private static Single instance = null;
    int property = 0; private Single()
    { } public static Single getInstance()
    {
    if (instance == null)
    {
    return new Single();
    }
    return instance;
    }
    }
      

  3.   


    需要使用到Single的时候
    Single single = new Single();
    这样会出现出错误!
    需要这样:
    Single single = Single.getInstance();
    单例字面意思就是只有一个实例对象!
    好处就是封装了构造函数!
      

  4.   

    单例其实是一种设计上的模式,目的是为了保持只有一个实例对象。例:一般比如封装一个JDBC操作的工具类可能会用到。
    以下的代码是一个示例,同时考虑了线程安全问题。仅供参考。public class Singleton { private static Singleton singleton = null; private Singleton() {
    } public static Singleton getInstance() {
    if (singleton == null) {
                            //防止线程安全
    synchronized (Singleton .class) {
    if (singleton == null) {
    singleton = new Singleton ();
    return singleton ;
    }
    }
    }
    return singleton;
    }
    }
      

  5.   

    public class Single {
    private static Single instance = null;
    int property = 0; private Single() { } public static Single getInstance() {
    if (instance == null) {
    instance=new Single();
    return instance;
    }
    return instance;
    }
    }
      

  6.   

    你们都只知道 什么是单例模式,究竟单例模式真正的意义何在?谁能说清楚?
    我的理解是,一个单例类的作用就相当于,一个对  static 属性的 集中操作,不管谁来操作,都是只针对一套,因为不能new 所以不会有新的出现,所谓的线程安全考虑,那全是扯淡,比如一个 单例类有 add()方法,别的类都去调用 add()会有问题吗? 除非,你把此类 所有的方法 都锁上,可是有这么做的吗?