相关疑难解决方法(0)

了解Factory构造函数代码示例-Dart

我对这里提到的工厂构造函数示例有些疑问(https://www.dartlang.org/guides/language/language-tour#factory-constructors)。我知道在基本级别上只有三种类型的构造函数-默认,命名和参数化。

  1. 为什么factory在这个示例中我应该完全使用?
  2. 是正在使用的命名构造函数吗?为什么呢? 工厂构造函数示例

constructor dart

15
推荐指数
4
解决办法
7198
查看次数

Java有静态订单初始化惨败吗?

这里最近的一个问题有以下代码(好吧,类似于这个)来实现没有同步的单例.

public class Singleton {
    private Singleton() {}
    private static class SingletonHolder { 
        private static final Singleton INSTANCE = new Singleton();
    }
    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想了解这是做什么的.由于实例是static final,它建立在任何线程调用之前很久,getInstance()所以不需要同步.

只有当两个线程试图同时调用时才需要同步getInstance()(并且该方法在第一次调用"static final"时而不是在第一次调用时进行构建).

因此我的问题基本上就是:为什么你会喜欢懒惰的单身人士建构:

public class Singleton {
    private Singleton() {}
    private static Singleton instance = null;
    public static synchronized Singleton getInstance() {
        if (instance == null)
            instance = new Singleton();
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

我唯一的想法是使用该static final方法可能会引入排序问题,如C++静态初始化顺序惨败.

首先,Java实际上 …

java singleton static-order-fiasco

10
推荐指数
1
解决办法
1579
查看次数

标签 统计

constructor ×1

dart ×1

java ×1

singleton ×1

static-order-fiasco ×1