草庐IT

Singleton

全部标签

java - 从非 Activity 单例类获取应用程序上下文

在我的android项目中,我有ImageAdapter类,我在其中传递应用上下文以满足进一步的需求。publicclassImageAdapterextendsBaseAdapter{privateContextc;publicImageAdapter(Contextc){this.c=c;}...}问题是我想让ImageAdapter成为一个单例,以便从我的所有Activity中轻松访问此类的实例。但我不知道如何将应用程序上下文从我的一项Activity的getApplicationContext()方法传递到ImageAdapter。那么有没有什么“魔法”可以做到以下几点?pub

java - 从非 Activity 单例类获取应用程序上下文

在我的android项目中,我有ImageAdapter类,我在其中传递应用上下文以满足进一步的需求。publicclassImageAdapterextendsBaseAdapter{privateContextc;publicImageAdapter(Contextc){this.c=c;}...}问题是我想让ImageAdapter成为一个单例,以便从我的所有Activity中轻松访问此类的实例。但我不知道如何将应用程序上下文从我的一项Activity的getApplicationContext()方法传递到ImageAdapter。那么有没有什么“魔法”可以做到以下几点?pub

java - 为什么在 Java 代码中实现单例模式(有时)被认为是 Java 世界中的反模式?

我在SO中看到有人评论说单例模式是一种反模式。我想知道为什么? 最佳答案 测试一个原因是单例不容易处理单元测试。您无法控制实例化,并且就其本质而言,它们可能会在调用之间保留状态。因此,dependencyinjection的原则很受欢迎。每个类都被注入(inject)(配置)了它们需要运行的类(而不是通过单例访问器派生),因此测试可以控制要使用哪些依赖类实例(并在需要时提供模拟)。诸如Spring之类的框架会控制其对象的生命周期并经常创建单例,但这些对象是由框架注入(inject)到它们的依赖对象中的。因此,代码库本身不会将对象视为

java - 为什么在 Java 代码中实现单例模式(有时)被认为是 Java 世界中的反模式?

我在SO中看到有人评论说单例模式是一种反模式。我想知道为什么? 最佳答案 测试一个原因是单例不容易处理单元测试。您无法控制实例化,并且就其本质而言,它们可能会在调用之间保留状态。因此,dependencyinjection的原则很受欢迎。每个类都被注入(inject)(配置)了它们需要运行的类(而不是通过单例访问器派生),因此测试可以控制要使用哪些依赖类实例(并在需要时提供模拟)。诸如Spring之类的框架会控制其对象的生命周期并经常创建单例,但这些对象是由框架注入(inject)到它们的依赖对象中的。因此,代码库本身不会将对象视为

java - 如何在 Java 代码中使用 scala.None

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Accessingscala.NonefromJava在Java中,您可以使用构造函数创建Some的实例,即newSome(value),但None没有伙伴类.如何将None从Java传递给Scala函数? 最佳答案 scala.None$.MODULE$东西并不总是类型检查,例如这不会编译:scala.Optionx=scala.None$.MODULE$;因为javac不知道Scala的声明站点差异,所以你得到:J.java:3:incompatible

java - 如何在 Java 代码中使用 scala.None

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Accessingscala.NonefromJava在Java中,您可以使用构造函数创建Some的实例,即newSome(value),但None没有伙伴类.如何将None从Java传递给Scala函数? 最佳答案 scala.None$.MODULE$东西并不总是类型检查,例如这不会编译:scala.Optionx=scala.None$.MODULE$;因为javac不知道Scala的声明站点差异,所以你得到:J.java:3:incompatible

java - Java中的线程安全单例

关于Singletons的维基百科文章提到了一些在Java中实现结构的线程安全方法。对于我的问题,让我们考虑具有冗长的初始化过程并且同时被许多线程访问的单例。首先,这个未提及的方法是线程安全的,如果是,它在什么上同步?publicclassSingleton{privateSingletoninstance;privateSingleton(){//lotsofinitializationcode}publicstaticsynchronizedSingletongetInstance(){if(instance==null){instance=newSingleton();}retu

java - Java中的线程安全单例

关于Singletons的维基百科文章提到了一些在Java中实现结构的线程安全方法。对于我的问题,让我们考虑具有冗长的初始化过程并且同时被许多线程访问的单例。首先,这个未提及的方法是线程安全的,如果是,它在什么上同步?publicclassSingleton{privateSingletoninstance;privateSingleton(){//lotsofinitializationcode}publicstaticsynchronizedSingletongetInstance(){if(instance==null){instance=newSingleton();}retu

Java 双重检查锁定

我最近偶然看到一篇文章,讨论了Java中的双重检查锁定模式及其陷阱,现在我想知道我多年来一直使用的该模式的变体是否会遇到任何问题。我查看了许多有关该主题的帖子和文章,并了解获取对部分构造对象的引用的潜在问题,据我所知,我不认为我的实现受这些问题的影响。以下模式有什么问题吗?如果没有,为什么人们不使用它?在我看到的有关此问题的任何讨论中,我从未见过有人推荐过它。publicclassTest{privatestaticTestinstance;privatestaticbooleaninitialized=false;publicstaticTestgetInstance(){if(!i

Java 双重检查锁定

我最近偶然看到一篇文章,讨论了Java中的双重检查锁定模式及其陷阱,现在我想知道我多年来一直使用的该模式的变体是否会遇到任何问题。我查看了许多有关该主题的帖子和文章,并了解获取对部分构造对象的引用的潜在问题,据我所知,我不认为我的实现受这些问题的影响。以下模式有什么问题吗?如果没有,为什么人们不使用它?在我看到的有关此问题的任何讨论中,我从未见过有人推荐过它。publicclassTest{privatestaticTestinstance;privatestaticbooleaninitialized=false;publicstaticTestgetInstance(){if(!i