用Java创建静态单例模式

时间:2012-07-18 04:42:29

标签: java javascript scope singleton

我正在创建一个实用程序类,它将用于(除其他外)创建绑定到当前线程的新org.mozilla.javascript.Context对象。我有一个单一的全局JavaScript范围,可能有几个导入/初始化语句等。

我希望外部类能够通过简单地使用Utility.getContext()Utility.getScope()来检索Context对象和Scope对象,以便将来执行,而无需显式使用{{1}功能。单例模式是必要的,因为上下文和范围都需要是单个实例。

以下代码是否有意义?

getInstance()

1 个答案:

答案 0 :(得分:4)

1。让这个公开

public static Utility getInstance()

2。除了getInstance()方法之外,无需将类中的所有方法设为静态。

3。当您尝试在其他类中访问此类的单例对象时,请执行此操作。

Utility ut = Utility.getInstance();

这就是为什么你不需要在Utility类中使用静态除getInstance()

之外的方法

4. 有三种方法可以获得 Singleton

i。同步方法

ii。带双重检查锁定的同步语句。

iii。在定义时初始化静态对象引用变量..

例如:

在定义时初始化静态对象引用变量

private static Utility instance = new Utility();

private Utility() {}

    private static Utility getInstance() {

           return instance;                  // WILL ALWAYS RETURN SINGLETON
                                      // REFER HEAD FIRST DESIGN PATTERN BOOK FOR DETAILS

    }