unity,啥时候用静态类,啥时候用单例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity,啥时候用静态类,啥时候用单例相关的知识,希望对你有一定的参考价值。
参考技术A 说是说不清楚的 不过可以分析一下单例 是在运行的时候需要调用了 去创建 而 静态 是在一开始的时候就加载进内存
但是单例本身的写法要比静态复杂一些 还有一些判断 而静态 写法简单 容易调用
个人的使用发现 如果存在大量的静态参数 那么在项目运行的一开始会十分的卡(数据多了 卡个半小时也是有可能的)
所以 猜测: 在不追求性能和 少量的数据 以及一些功能性的方法中 使用静态比较好 而 对于大量的数据 应该在需要的时候进行加载的 那种 则使用单例 好些
红宝石啥时候出现特征类
【中文标题】红宝石啥时候出现特征类【英文标题】:ruby when to eigenclasses come into existence红宝石什么时候出现特征类 【发布时间】:2013-08-20 03:21:58 【问题描述】:在定义单例方法之前是否存在特征类 在对象或类上。即它们是一直存在还是存在 什么时候定义了单例方法或类方法?
【问题讨论】:
【参考方案1】:每个对象总是有一个单例类。时期。没有如果,没有但是,没有例外。
根据编译器或解释器的聪明程度,它可能会或可能不会执行一些性能优化。但与所有性能优化一样,不允许更改程序的结果,因此即使这些性能优化确实会导致特定单例类实际上的某些状态> 存在,程序仍然必须 表现得好像它确实 存在,所以无论如何你都无法判断。毕竟,这几乎就是“性能优化”的定义。
一些 Ruby 实现可能会进行一些优化,其他可能会进行其他优化,有些甚至可能根本不进行任何优化。你无法从程序的结果中看出,你不应该关心,你不必关心。
例如,YARV 执行以下优化:
由于几乎没有对象有单例方法,为每个对象创建一个单例类会浪费内存,因此单例类是懒惰地创建的:当你创建一个单例方法时(@ 987654321@ 或 Object#define_singleton_method
),当你打开单例类 (class << foo
),以及当你请求一个对象的单例类时 (Object#singleton_class
)。
由于几乎每个类都有某种类方法,所以懒惰地创建单例类的开销没有意义,因此对于类,单例类总是急切地创建。
但这是 YARV 的私有内部实现细节。 JRuby 可能会有所不同。 IronRuby 可能会有所不同。 MacRuby 可能会有所不同。 MRuby 可能会有所不同。黄玉可能会有所不同。鲁比尼乌斯可能会做不同的事情。 MagLev 可能会采取不同的做法。甚至 YARV 的下一个补丁级别也可能会有所不同。
如果您查看单例类,它就在那里。如果你不看它,它是否在那里并不重要。所以,从语义上讲,它总是存在的。
【讨论】:
【参考方案2】:对于像类这样的对象,当一个新类被创建时,它的特征类也被创建,以及它们的对象在被创建时。
示例:- 创建一个类
class User; end
或
User = Class.new
它的特征类也是同时创建的,
并且为用户类的每个对象创建一个单独的特征类
【讨论】:
以上是关于unity,啥时候用静态类,啥时候用单例的主要内容,如果未能解决你的问题,请参考以下文章