这种方式能省内存吗?

LQknife 2008-06-27 03:56:07
在一个项目的每个类中,项目经理都定义了个静态的Instance类字段,然后用一个GetInstance的方法来给这个赋值
代码 如下 :
public static XXXX GetInstance()
{
if (Instance == null)
{
Instance = new XXXX();
}
return Instance;
}
说只要第一次new一个新的以后就可以重用这个实例,要是我用new XXXX()的方法生成一个实例就说我浪费内存,
我不想争是非,我只想知道答案,这样做比new一个新的省内存吗?
(小弟第一次提问,不当之处请见谅^_^)
...全文
173 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 NewUser2008 的回复:]
引用 2 楼 fuadam 的回复:
单例模式其实不是为了节省内存用的,不过他这样做也可以。你每次new不是浪费内存而是会引起垃圾回收效率低些。
[/Quote]
NewUser2008 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fuadam 的回复:]
单例模式其实不是为了节省内存用的,不过他这样做也可以。你每次new不是浪费内存而是会引起垃圾回收效率低些
[/Quote]
xuhaiyang 2008-06-27
  • 打赏
  • 举报
回复
当然省内存,这样在堆上只要存一个这个类的对象就行了,因为只new了一次
hamehameha 2008-06-27
  • 打赏
  • 举报
回复
要看项目多大了,那种方法是有一定的优化作用,但是如果项目不大,这样做的话我觉得没什么必要。
LQknife 2008-06-27
  • 打赏
  • 举报
回复
总是感觉在做winform窗体的时候用这种单实例的好,其他的没有必要
skison 2008-06-27
  • 打赏
  • 举报
回复
这是简易singleton

用这东西不在于省不省内存。

static的示例 全局只有一个 就是说 无论你调用多少次,总是同一个内存控件的数据,并且不会释放。
而一般new的对象,在new的时候,系统会单独为其分配内存,也就是说 你new多少次,分配多少个 但是大多这种实例用完就被释放了。

需要考虑内存的时候,一般是在系统运行过程中,会并发很多线程做会浪费很大内存的操作,例如加载xml
isjoe 2008-06-27
  • 打赏
  • 举报
回复
关键的一点他应该将提供public static XXXX GetInstance() 这种方法的类,禁止你们公开实例化它,即构造函数私有化或者保护.
正宗熊猫哥 2008-06-27
  • 打赏
  • 举报
回复
static 常驻内存。你没必要再去new
fuadam 2008-06-27
  • 打赏
  • 举报
回复
单例模式其实不是为了节省内存用的,不过他这样做也可以。你每次new不是浪费内存而是会引起垃圾回收效率低些。
ericzhangbo1982111 2008-06-27
  • 打赏
  • 举报
回复
恩,是的,因为他只创建一个实例

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧