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,啥时候用静态类,啥时候用单例的主要内容,如果未能解决你的问题,请参考以下文章

静态类初始化啥时候发生?

1java面试

Java中的单例模式和静态类有啥区别? [复制]

java 中静态内部类字段啥时候初始化?是在外部类加载的时候就初始化吗?

单例模式

请问java 单例类 与 静态类 有何不同?