问题标签 [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.
c# - 单例线程安全
我的问题是关于类函数的线程安全。这是我拼凑起来的一些测试代码,试图更好地理解。
}
Singleton 类的创建是安全的,但我的问题是关于函数 ExecuteAlgorithm 的使用。多线程使用 ExecuteAlgorithm() 是否安全?
我的理解是它应该不会导致任何竞争条件,因为创建的每个线程都有自己的堆栈,其中局部函数变量将被推送到其中,然后算法实例的创建将在应用程序范围的堆中创建。
我的理解正确吗?
objective-c - “[[self sharedManager] retain]”为什么要retain
在苹果文档单例中:
我有个问题:
保留应该省略,但为什么要保留保留?
因为 return [self sharedManager]
或[[self sharedManager] retain]
等于。
java - 如何扩展单例类以处理特定数量的对象
在 Java 中,我创建了一个单例类,如下所示:
在这里,仅返回对 Singleton 类的已创建对象的引用。如何创建一个类,以便只允许创建该类的四个对象?我可以为此使用这个 Singleton 类,还是必须从头开始?
哦, print() 是我在这里的自定义方法。与 相同System.out.println()
,只是击键次数更少 :)
objective-c - 如何使用单例类方法更改全局变量的值?
我希望能够从任何更改全局变量值的类中调用方法。
我将首先为不想查看代码的任何人概述问题。
提前为长篇道歉!我只想提供所有详细信息。
在我当前的设置(受 SREE 博客启发的一些测试代码)中,我有一个单例类 (GlobalData),它定义了一个全局变量 (globalMessage) 和一个更改全局变量的方法 (globalFunction)。
到目前为止,我的代码...
1) 在单例类 (GlobalData) 中将 globalMessage 设置为“默认全局消息”。
2) 使用 NSLog 在另一个类 (MyDocuments) 中打印“Outside class: 'Default Global Message'”。
3) 使用另一个类 (MyDocuments) 来调用 globalFunction。
4) globalFunction 将 globalMessage 设置为“New Global Message”
5) globalFunction 使用NSLog(@"Set %@", globalMessage)
输出“设置新的全局消息”
6) 重复步骤 2。NSLog(@"Outside class: %@", [GlobalData sharedGlobalData].globalMessage)
不知何故,当我调用 globalFunction 时,我只是在更改实例变量 globalMessage 而不是全局变量。
非常感谢您的帮助!
这是代码...
全球数据.h
全球数据.m
我的文档.h
我的文档.m
c# - 如何在工作进程asp.net的所有实例之间共享变量
我不得不将预先构建的 asp 网站从单个工作进程环境移动到云服务器上的多个工作进程环境。我有一个带有静态 arraylist 变量的类,它用于包含所有会话信息的最后 2 分钟以用于跟踪目的。管理员用于访问此数组列表以查看实时报告。但在将其转移到云基础设施时,这种分解结果不再正确。这取决于负载均衡器后面的哪个服务器正在为页面提供服务,因此每个应用程序池都有多个静态变量实例。我尝试迁移到 mysql,但我们需要定期清除数据,而且它也存在性能问题。在这里,arraylist 被大量处理以产生有用的数据,因此我需要一些内存中的东西。
请注意,之前使用不带锁的静态变量也是不利的,但这只会导致 1 或 2 条记录之间的差异,但速度非常快。
java - Spring MVC Singleton Controller - 多个下载请求
我知道 Spring MVC 控制器是单例。
因此,使用控制器的字段来存储数据可能会导致安全问题。
问题是,假设它有一个允许用户下载文件的映射 -
那么如果多个用户同时请求下载不同ID的文件,是否会导致一个用户获取另一个用户请求的文件?
objective-c - 在 AppDelegate 中设置的单例在另一个类中分配时会丢失它的值
我有一个 iPad 应用程序,我正在尝试使用单例。这是 .h 文件中的代码:
这是 .m 文件中的代码:
我在 AppDelegate - didFinishLaunchingWithOptions中加载值(12或24),然后当我想获取timeFormat的值时,我使用它:
返回0(它在AppDelegate中设置正确,但显然当我在另一个类中进行分配时,它失去了它的价值。所以显然它不起作用!(我有几个其他具有相同模式的单例,但到目前为止它们出现了工作。
这里有什么问题,我该如何解决?
ios - 单例实现。阻止外部使用的 alloc 和 init 方法
我有一个我希望作为单例实现的类。
我希望创建/访问此类实例的唯一方法是通过:
方法。alloc 和 init 在方法实现中被调用(当然)。
如果尝试不通过 sharedInstance 方法(而是直接通过 alloc + init)创建该类的实例,有没有办法阻止 alloc 和 init 的使用,或者使它们“空”?
ruby - Ruby:如何从两个模块类方法重构代码?
这是代码:
我正在使用遗留代码,试图避免改变太多。我不确定我是否会使用相同的方法创建两个单独的类,因为每个类只包含一个方法,并且具有通用代码。我想将公共代码提取到只有 A 中的方法可以看到的方法中,但仍然必须使用其完全限定名称(“A::helper”)调用它。
有没有更好的方法来做到这一点?理想情况下,我想将公共代码包装在一个方法中(我们仍然称其为“帮助程序”),该方法可以在没有任何限定的情况下从类 grovel 方法中调用,但不容易用于模块 A 之外的代码。
谢谢。
ruby - Ruby 类 << abcd 语法
我知道还有其他关于语法的问题class << self
。尽管如此,我还没有发现这些答案足够清楚。我有 Java/C#、C 的背景,所以 Ruby 对我来说有点奇怪。我读到的是class << self
指单例类。我觉得这有点复杂,所以我想了解操作员<<
在这种情况下做了什么,以及两端都有什么可能。我尝试编写一个简单的代码来帮助我理解这种语法(我的问题在代码中):
谢谢
更新: 非常感谢大家。我已经阅读和测试了很多,所以会留下一些注意事项。我将其留作将来参考,因此,如果我错了,我希望 Ruby 专家能纠正我。我意识到 class << Self 指的是 Self 单例类。因此,惯用类 << abcd 启动 abcd 单例类上下文。我还意识到类单例类的层次结构与对象单例类不同。类单例类的层次结构遵循层次结构中的所有单例类。在这种情况下:
单例自身->单例对象->单例基本对象->类->模块->对象->内核->基本对象
对象单例类位于不同的层次结构中:
对象单例->自我->对象->内核->基本对象
这解释了这个输出。