【发布时间】:2015-07-02 00:06:18
【问题描述】:
我想制作具有如下行为的单例类。
- 我的程序资源非常有限,所以在需要之前我不想创建单例实例。 (延迟初始化)
- 单例类非常庞大,因此初始化需要很长时间。
- 响应时间在此程序中很重要。(如游戏)
但如您所知,1 & 2 & 3 是相互冲突的。 在这种情况下,我必须选择其中之一(内存或性能)
程序有什么解决方案可以满足内存和性能要求吗?
【问题讨论】:
-
最直接的答案似乎是:不要使用单例(除非你 100% 确定自己在做什么)。
-
您在程序执行的某个时刻是否需要单例,或者程序可能不需要在给定的运行中使用它?如果是前者,那么你最好在开始时初始化它,因为内存和 CPU 会在某个时候受到打击,所以我认为隐藏它的最佳位置是在启动时而不是在程序执行的中途。