相关疑难解决方法(0)

你如何在Dart中建立一个单身人士?

单例模式确保只创建一个类的一个实例.我如何在Dart中构建它?

singleton dart

140
推荐指数
18
解决办法
5万
查看次数

比较在Dart中创建单例的方法

我读了这些帖子:

我在理解以下创建单例的方式之间的区别时遇到了一些麻烦:

1.工厂构造函数

class SingletonOne {

  SingletonOne._privateConstructor();

  static final SingletonOne _instance = SingletonOne._privateConstructor();

  factory SingletonOne(){
    return _instance;
  }

}
Run Code Online (Sandbox Code Playgroud)

2.带有吸气剂的静态场

class SingletonTwo {

  SingletonTwo._privateConstructor();

  static final SingletonTwo _instance = SingletonTwo._privateConstructor();

  static SingletonTwo get instance { return _instance;}

}
Run Code Online (Sandbox Code Playgroud)

3.静态场

class SingletonThree {

  SingletonThree._privateConstructor();

  static final SingletonThree instance = SingletonThree._privateConstructor();

}
Run Code Online (Sandbox Code Playgroud)

这些实例化如下:

SingletonOne one = SingletonOne();
SingletonTwo two = SingletonTwo.instance;
SingletonThree three = SingletonThree.instance;
Run Code Online (Sandbox Code Playgroud)

问题

GünterZöchbauer说这个问题

无需使用工厂构造函数。当new不是可选的时,工厂构造函数很方便,因为它new MyClass()适用于每次构造函数都返回一个新实例或该类返回一个缓存实例的类。知道实际创建对象的方式和时间不是呼叫者的责任。

我不明白new现在可选是如何使工厂构造函数现在不必要。在您无法做类似SingletonTwo或 …

singleton dart

10
推荐指数
2
解决办法
1683
查看次数

标签 统计

dart ×2

singleton ×2