jjzjj

Singleton

全部标签

php单例在自动加载器类中不断调用自己两次

我制作了一个按预期工作的自动加载器类,但我注意到一个奇怪的行为。当我回显发现的类的结果时,这些类的结果被传递给处理spl_autoload_register()函数的方法。我看到我有double。就像脚本被调用两次一样,因为它是一个单例,所以在我的例子中数据构建了2个数组。我正在使用这种方法来创建我的单例publicstaticfunctioninit(){if(!isset(self::$instance))self::$instance=newself();returnself::$instance;}然后我将构造函数设置为私有(private)。我已经调试了每种方法,试图查看它似

PHP 单例和继承

我在PHP继承方面遇到了一些问题。这是交易:我有这个基类,Singleton:namespaceMy_Namespace;abstractclassSingleton{protectedstatic$instance=null;staticfunctionget(){if(null==static::$instance){static::$instance=newstatic;}returnstatic::$instance;}privatefunction__construct(){}}我有一堆类继承了那个Singleton类,称它们为A、B、C、D。其中一个看起来像这样:names

java - 寻找有状态的单例 bean

今天,我们在代码中发现了这种模式:classFoo{privateListerrors;publicvoidaddError(Stringerror){...}publicListgetErrors();}虽然代码似乎有效,但这是一个单例Springbean,它被注入(inject)到几个独立的位置,bean的使用者假设他们每个人都有自己的错误列表。所以这会引入细微的错误。显而易见的解决方案是教育开发人员避免此类错误,但我想知道是否有静态或运行时代码分析工具可以发现此类错误。例如,bean后处理器可以在bean返回之前分析它并查找不是@Autowired的私有(private)字段。

使用 HashMap 实现多线程的 Java 单例同步

我有以下类(class):publicclassAggregationController{privateHashMap>messages;privateHashMapcounters;BooleanbuildAggregateReply;privatebooleanisAggregationStarted;privatestaticHashMapinstances=newHashMap();privateAggregationController()throwsMbException{messages=newHashMap>();counters=newHashMap();build

java - 单例类的优势是什么?

这个问题在这里已经有了答案:Differencebetweenstaticclassandsingletonpattern?(41个回答)关闭7年前。在java中,当我们创建一个类单例时,它只为每个应用程序创建该类的一个实例,但是如果我们创建该类的所有方法和变量静态,那么它也将只创建该类的一个实例,而不是创建单例类静态成员。那么单例类相对于类的所有静态成员有什么优势呢?

java - 单例对象工厂 : is this code thread-safe?

我有一个用于许多单例实现的通用接口(interface)。接口(interface)定义了可以抛出检查异常的初始化方法。我需要一个工厂来按需返回缓存的单例实现,想知道以下方法是否线程安全?UPDATE1:请不要建议任何第三部分库,因为由于可能的许可问题,这将需要获得法律许可:-)更新2:此代码可能会在EJB环境中使用,因此最好不要产生额外的线程或使用类似的东西。interfaceSingleton{voidinit()throwsSingletonException;}publicclassSingletonFactory{privatestaticConcurrentMap>CACH

java - 将枚举 INSTANCE 设为私有(private)

我正在使用这样的枚举单例模式:publicenumLicenseLoaderimplementsClientLicense{INSTANCE;/***@returnaninstanceofClientLicense*/publicstaticClientLicensegetInstance(){return(ClientLicense)INSTANCE;}...restofcode}现在我想返回接口(interface)并隐藏我们实际使用枚举的事实。我希望客户端使用getInstance()而不是LicenseLoader.INSTANCE,因为有一天我可能会在必要时决定使用不同的模式

java - 在实现接口(interface)的类上强制单例模式

我最好用一个例子来解释这个问题。我有一个可用于访问数据的接口(interface)模型。模型可以有不同的实现,它可以表示各种格式的数据,比如XMl、txt格式等。模型与格式无关。假设这样的实现之一是myxmlModel。现在我想强制myxmlModel和Model的所有其他实现遵循SingletonPattern。通常的方法是使myxmlModels构造函数私有(private)并提供一个静态工厂方法来返回myModel类的实例。但问题是interface不能有静态方法定义,结果我不能强制执行特定的工厂方法定义模型的所有实现。因此,一种实现可能以提供getObject()结束,而其他实

java - @Singleton、@Startup、@PostConstruct 不适用于 EJB3.1 和 Glassfishv3.0.1

我的设置有问题,我什至无法查看日志。这是我的@Singleton@StartupEJB:@Singleton@Startup@DependsOn("SchedulerEJB")publicclassSchedulerStartUp{privatestaticLoggerlog=Logger.getLogger(SchedulerStartUp.class);@EJBSchedulerEJBschedEJB;@PostConstructpublicvoidatStartup(){log.info("startUp")System.out.println("startUp");schedE

java - Spring MVC单例线程安全?

我有一个单例Springbean(默认范围)。因此,一个实例将被多个线程使用。然而,我对线程安全有点困惑,显然所有Springbean如果它们是无状态的,它们都是线程安全的,但我的bean不是无状态的,它有各种实例变量,每个请求/其他Controller/类都使用这些变量。这是我的单例bean的开头:publicclassPcrfSimulator{privatefinalCustomGxSessionIdCacheImplgxSessionIdCache=newCustomGxSessionIdCacheImpl();privatefinalPcrfRecordpcrfRec=new