unity,什么时候用静态类,什么时候用unity3d 单例模式

在最近unity3d的项目中,为了图方便使用了很多的静态变量,通常是单例类 (public static 类名 xxx )的使用,但是很少有在脚本使用结束后去将静态变量的值置为空,如果该脚本的成员变量中申请过内存空间 比如new byte[]或者存放了一些图片 Resources.load()等,那么即使该脚本对应的gameobject被删除了,这些成员变量中申请过的内存也不会被释放,另为Resource.load的图的内存还需要在调用Resources.UnloadUnusedAssets()后,才能释放。如果成员变量也为静态类型,仅仅将static的类名置空是无用的,还需要将对应的静态变量也置为空。
Unity3d中内存通常出现的ManagedStaticReferences就更静态变量的不规范使用有关系,以后得多注意了。
阅读(...) 评论()他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)2670人阅读
【Unity】(104)
【C#】(35)
观点一:(单例)
单例模式比静态方法有很多优势:
首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;
再次,单例类可以被集成,他的方法可以被覆写;
最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。
观点二:(静态方法)静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton, 产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并且自己写代码来做了个实验。
1. 如果你需要维护一些数据或者状态,那么使用单例模式。静态类实是放一些简单的常量或者无状态的函数,例如技巧篇()这里的技巧1和技巧2。
2. 从上面的代码里你可以看出来,单例模式使用的类实际上就是一个普通的类。因此你可以把它们当成参数传递给其他脚本。
3. 单例模式可以延迟类的初始化。从代码里你可以看出,只有需要的时候才会实例化那个单例。而静态类在加载的时候就被绑定了。
4. 单例具有很好的面向对象的特性。这句话比较虚,我的理解是它的可变性很大,可以继承可以重载等等等等。
【以上文章摘自多位大神博客】采用单例模式还是静态方法好呢_百度经验
&&&&&&互联网采用单例模式还是静态方法好呢?
百度经验:jingyan.baidu.com在真正的开发项目的过程中,使用单例模式好呢,还是使用静态方法好呢,具体情况具体分析,大体可以分一下观点:观点一:(单例)单例模式比静态方法有很多优势:首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;再次,单例类可以被集成,他的方法可以被覆写;最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。观点二:(静态方法)静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton, & 产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并且自己写代码来做了个实验。观点三:(个人认为比较好)由于DAO的初始化,会比较占系统资源的,如果用静态方法来取,会不断地初始化和释放,所以我个人认为如果不存在比较复杂的事务管理,用singleton会比较好。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。投票(1)已投票(1)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验00000热门杂志第1期你不知道的iPad技巧3725次分享第1期win7电脑那些事6568次分享第2期新人玩转百度经验1382次分享第1期Win8.1实用小技巧2635次分享第1期小白装大神1878次分享◆请扫描分享到朋友圈他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 unity3d 单例类 的文章

 

随机推荐