我正在创建一个实用程序类,它将用于(除其他外)创建绑定到当前线程的新org.mozilla.javascript.Context
对象。我有一个单一的全局JavaScript范围,可能有几个导入/初始化语句等。
我希望外部类能够通过简单地使用Utility.getContext()
和Utility.getScope()
来检索Context对象和Scope对象,以便将来执行,而无需显式使用{{1}功能。单例模式是必要的,因为上下文和范围都需要是单个实例。
以下代码是否有意义?
getInstance()
答案 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
}