在一个项目的每个类中,项目经理都定义了个静态的Instance类字段,然后用一个GetInstance的方法来给这个赋值
代码 如下 : 
   public  static XXXX GetInstance()
        {
            if (Instance == null)
            {
                Instance = new XXXX();
            }
            return Instance;
        }
说只要第一次new一个新的以后就可以重用这个实例,要是我用new XXXX()的方法生成一个实例就说我浪费内存,
我不想争是非,我只想知道答案,这样做比new一个新的省内存吗?
(小弟第一次提问,不当之处请见谅^_^)

解决方案 »

  1.   

    单例模式其实不是为了节省内存用的,不过他这样做也可以。你每次new不是浪费内存而是会引起垃圾回收效率低些。
      

  2.   

    static 常驻内存。你没必要再去new
      

  3.   

    关键的一点他应该将提供public  static XXXX GetInstance() 这种方法的类,禁止你们公开实例化它,即构造函数私有化或者保护.
      

  4.   

    这是简易singleton用这东西不在于省不省内存。   static的示例 全局只有一个  就是说  无论你调用多少次,总是同一个内存控件的数据,并且不会释放。
    而一般new的对象,在new的时候,系统会单独为其分配内存,也就是说  你new多少次,分配多少个   但是大多这种实例用完就被释放了。需要考虑内存的时候,一般是在系统运行过程中,会并发很多线程做会浪费很大内存的操作,例如加载xml
      

  5.   

    总是感觉在做winform窗体的时候用这种单实例的好,其他的没有必要
      

  6.   

    当然省内存,这样在堆上只要存一个这个类的对象就行了,因为只new了一次