草庐IT

Singleton

全部标签

java - 单例类和静态类的区别?

这个问题在这里已经有了答案:关闭12年前.PossibleDuplicates:Differencebetweenstaticclassandsingletonpattern?WhatisthedifferencebetweenaSingletonpatternandastaticclassinJava?你好我不清楚单例类和静态类有什么区别?谁能举例说明一下? 最佳答案 单例类:单例类是每个类加载器只能存在单个实例的类。静态/帮助类(只有静态字段/方法的类):不存在此类的实例。只有字段和方法可以作为常量或辅助方法直接访问。以下引用自

java - 单例类和静态类的区别?

这个问题在这里已经有了答案:关闭12年前.PossibleDuplicates:Differencebetweenstaticclassandsingletonpattern?WhatisthedifferencebetweenaSingletonpatternandastaticclassinJava?你好我不清楚单例类和静态类有什么区别?谁能举例说明一下? 最佳答案 单例类:单例类是每个类加载器只能存在单个实例的类。静态/帮助类(只有静态字段/方法的类):不存在此类的实例。只有字段和方法可以作为常量或辅助方法直接访问。以下引用自

java - 为不同的 JUnit 测试使用不同的类加载器?

我有一个Singleton/Factory对象,我想为其编写JUnit测试。Factory方法根据类路径上的属性文件中的类名来决定要实例化哪个实现类。如果没有找到属性文件,或者属性文件不包含类名键,则该类将实例化一个默认实现类。由于工厂保留了单例的静态实例,以便在实例化后使用,为了能够在工厂方法中测试“故障转移”逻辑,我需要在不同的类加载器中运行每个测试方法。JUnit(或其他单元测试包)有没有办法做到这一点?编辑:这里是一些正在使用的工厂代码:privatestaticMyClassmyClassImpl=instantiateMyClass();privatestaticMyCla

java - 为不同的 JUnit 测试使用不同的类加载器?

我有一个Singleton/Factory对象,我想为其编写JUnit测试。Factory方法根据类路径上的属性文件中的类名来决定要实例化哪个实现类。如果没有找到属性文件,或者属性文件不包含类名键,则该类将实例化一个默认实现类。由于工厂保留了单例的静态实例,以便在实例化后使用,为了能够在工厂方法中测试“故障转移”逻辑,我需要在不同的类加载器中运行每个测试方法。JUnit(或其他单元测试包)有没有办法做到这一点?编辑:这里是一些正在使用的工厂代码:privatestaticMyClassmyClassImpl=instantiateMyClass();privatestaticMyCla

java - 单例:如何停止通过反射创建实例

我知道在Java中我们可以通过new、clone()、Reflection和serializing创建一个类的实例和反序列化。我创建了一个实现单例的简单类。而且我需要停止创建我的类的实例。publicclassSingletonimplementsSerializable{privatestaticfinallongserialVersionUID=3119105548371608200L;privatestaticfinalSingletonsingleton=newSingleton();privateSingleton(){}publicstaticSingletongetIns

java - 单例:如何停止通过反射创建实例

我知道在Java中我们可以通过new、clone()、Reflection和serializing创建一个类的实例和反序列化。我创建了一个实现单例的简单类。而且我需要停止创建我的类的实例。publicclassSingletonimplementsSerializable{privatestaticfinallongserialVersionUID=3119105548371608200L;privatestaticfinalSingletonsingleton=newSingleton();privateSingleton(){}publicstaticSingletongetIns

java - DocumentBuilder 线程安全吗?

我正在查看的当前代码库使用DOM解析器。以下代码片段在5种方法中重复:DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();如果在循环中调用包含上述代码的方法或在应用程序中多次调用该方法,我们将承担为每次调用此类方法创建一个新DocumentBuilderFactory实例和一个新DocumentBuilder实例的开销.如下所示,围绕DocumentBuilder工厂和DocumentBuilder实例

java - DocumentBuilder 线程安全吗?

我正在查看的当前代码库使用DOM解析器。以下代码片段在5种方法中重复:DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();如果在循环中调用包含上述代码的方法或在应用程序中多次调用该方法,我们将承担为每次调用此类方法创建一个新DocumentBuilderFactory实例和一个新DocumentBuilder实例的开销.如下所示,围绕DocumentBuilder工厂和DocumentBuilder实例

java - 单例和单元测试

EffectiveJava有以下关于单元测试单例的声明Makingaclassasingletoncanmakeitdifficulttotestitsclients,asit’simpossibletosubstituteamockimplementationforasingletonunlessitimplementsaninterfacethatservesasitstype.谁能解释为什么会这样? 最佳答案 您可以使用反射来重置您的单例对象,以防止测试相互影响。@BeforepublicvoidresetSingleton(

java - 单例和单元测试

EffectiveJava有以下关于单元测试单例的声明Makingaclassasingletoncanmakeitdifficulttotestitsclients,asit’simpossibletosubstituteamockimplementationforasingletonunlessitimplementsaninterfacethatservesasitstype.谁能解释为什么会这样? 最佳答案 您可以使用反射来重置您的单例对象,以防止测试相互影响。@BeforepublicvoidresetSingleton(