问题标签 [singleton-methods]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在运行时从调度的作业中通过 setter 线程安全地更新单例的依赖项
我有一个基于 Spring 的 Java 应用程序,我的目标是在内存中缓存一堆对象以提高性能,并使用计划的作业定期从数据源更新该缓存。
如果我将该映射存储在单例 Spring bean 中,是否有一种线程安全的方法可以在运行时更新该映射而不使访问/服务方法同步?是否可以在调用时对单例对象执行不同步的临时方法块setMap(myNewMap)
?有必要吗?
objective-c - 在单例类中有额外的静态方法可以吗?
我用方法编写了一个单例类(在objective-C中):
所以要使用这个我必须打电话[[MyClass sharedInstance] getAllFeedItems];
现在,如果我定义一个静态方法,而不是那样:
进而实现:
所以现在我可以简单地使用:[MyClass getFeedItems];
。这样做有什么不对吗?它会引起任何问题还是编码习惯不好?对我来说,它只是让函数调用更容易。
node.js - 如果导出的模块函数被调用两次,则抛出错误
我有一个导出函数的 Node.js 模块:
我希望在这里使用单例模式,但无需大惊小怪。这是一个库,我的库代码可能会不小心多次调用这个函数,但是我需要依赖用户来定义代码,所以我不能保证他们会实现一个正确的单例模式.
如果导出的函数被多次调用,是否有一个好的模式可以用来抛出错误?
我在想这样的事情:
明确地说,以下内容并不好:
对于一些可能就足够的用例,但出于几个原因,我希望取消标准的单例代码。
我不认为monkeypatching require 函数会对此有所帮助,但也许。
现在我加载这样一个模块的代码是这样的:
问题是我可以在我的代码库中的其他地方调用
再次。代码库越来越大,我想快速失败。
在我看来,最好的办法是重新定义 fn,一旦它第一次被调用。
(1) 我必须将局部变量 fn 设置为类似
更重要的是(2)
我必须将 module.exports 值设置为
希望这有点道理
java - Java - 无限循环单例类方法调用
我有一个关于单例类的问题。当我调用方法 next() 时,我希望 mProcessIndex 会增加,但实际上不会增加,因此会导致 stackoverflow 错误。那么,问题是修改 mProcessIndex 值的正确方法是什么?
下面的代码:
ruby - 在 Fixnum 的实例上定义方法
我可以在这样的实例上定义一个方法:
尝试与 a 类似的东西Fixnum
不起作用:
这是什么原因?
我知道这是我永远不应该做的事情。我只是想知道为什么这不像我预期的那样工作。
c++ - 使用静态函数访问单例
考虑我有一个单例类Foo
。这里的问题不是关于实现单例习语的方式,那么我就不明确了。我有类似的东西:
然后,在我看来,经典的称呼方式如下:
总是不得不写Foo::getInstance()
来访问实例并执行预期的任务是很烦人的。那么我的问题如下:作为静态函数的重复函数如何,保持单例机制,但缩短访问时间?
然后,我可以用这个更短的版本来调用它:
这很常见吗?是否有充分的理由不这样做(以及为什么)?还有其他(更好的)方法来简化对单例类的调用吗?
注意:出于兼容性原因,我不使用 C++11。
ruby-on-rails - Ruby:类中实例变量的单例方法
我正在接受 ruby-kickstart (Josh Cheek) 挑战,即使我设法通过了所有测试,但有一件事我无法理解。
在练习中,您被要求覆盖实例变量的 << 方法。具体来说,这是您必须做的:
在 Ruby on Rails 中,当有人访问您网站上的 URL 时,您的应用程序会查看该 url,并将其映射到控制器方法以处理请求
我的老板希望能够根据正在访问的控制器方法来指定 HTML 输出的主体应该具有什么 CSS 类。我有责任提供一种方法,该方法在被调用时会返回一个可以处理请求的字符串。不过,有一些细微差别。返回的 String 必须在对象的整个生命周期中保留 方法必须能够被多次调用 返回的 String 应该知道如何添加新的类:每个类之间用空格分隔 唯一需要担心的方法是调用的是 << 方法。(加上一些其他不相关的东西)示例:
我的工作解决方案:
一切正常。但是我给出的较早的解决方案(但它没有用)如下
当有人在第二个不工作的解决方案上运行时,以下
<< 方法没有被对象的单例覆盖。我不明白为什么我必须将单例方法包装在 body_class 方法中。(请注意,在第二个解决方案中有一个 attr_accessor。
任何人都可以启发我!谢谢!
ios - 如何在 iOS 中不断更新值的主视图控制器中创建用户定义的方法?
我自己学习了目标c,没有参加任何课程。因此,有时我在编写 iOS 应用程序时会对一些小事感到困惑。这个问题可能很蹩脚,但我找不到任何解决方案,或者我无法理解解决方案。这是我的情况:
我的应用程序包含单个视图控制器(默认)。我想从加速度计、陀螺仪和磁力计获得连续值,并使用这些值使用行人航位推算 (PDR) 来估计用户位置。为此,我使用了 CoreMotion 并motionManager
在头文件中创建了一个 CLMotionManager ( ) 属性。使用这个管理器,我可以检查传感器是否可用并获取它们的值,例如:
同样,我可以从陀螺仪和磁力计中获取值。IBAction
按下按钮后,我在方法中获取这些值:
PDR 操作发生在我的下一个方法中:
现在,我的问题是:
1)如何从thePDROperationWith::
方法中获得连续的PDR操作值?我在方法内部调用了这个startSensor
方法,但是当我按下按钮时我只得到一次值。此外,我是否也应该在头文件中声明此方法(如在用户定义的NSObject
子类中)?
2)用户定义的方法和委托方法有什么区别,比如
//a method in CLBeaconManager delegate
-(void)beaconManager:(CLBeaconManager*)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
//code
}
?
这个委托方法(我希望我使用的是正确的术语)连续运行以在定义的CLBeaconRegion
. 我怎样才能为我的目的制作这种方法?
谢谢你。
c# - ThreadStatic 的 C# 单例模式设计
我想弄清楚单例模式设计。我想为我的单例类中的每个线程创建单独的实例。所以我在下面提供了两个设计。
这是工作
它不起作用(抛出 NullReferenceException 并且未创建实例。)
我真的很想知道为什么不为第二个设计创建一个实例。有人可以解释一下吗?
java - 单例类的 Java 静态初始化中的死锁
我在 libgdx 中设计游戏,我决定将某些管理器类设为单例,因为我注意到我经常只使用一个类的一个实例,然后通过构造函数将同一个实例传递给许多其他类,这非常痛苦做。现在,我有一个管理器类,它在它的构造函数中初始化了许多其他类。我通过为每个类使用静态块初始化器来做到这一点,如下所示:
在主管理器中,我通过 getInstance 方法为每个类创建一个实例。
出现的问题是:假设我有静态单例类 Example1 和 Example2。
在 Example1 的构造函数中,我创建了一个名为:
但是因为 example2 和 example1 需要使用彼此的方法,所以在 Example2 的构造函数中我做了:
问题应该很容易看出。因为example1在等待example2完成初始化,而example2又需要example1的实例,最终通过上面的代码RunTimeException造成死锁崩溃。
仅使用两个示例类似乎很容易解决这个问题,但是当我有 6 个几乎都需要以某种方式进行通信的不同单例管理器类时,问题就变得复杂了。最简单的解决方案显然不会使用这种方法,但这需要我重写我的大部分代码。
我不知道如何在不遇到这个问题的情况下使用这种单例类方法,因为大多数类需要来自构造函数中其他类的信息才能运行。
我要从单例类的构造函数中删除所有代码,还是做其他事情?