在Dart中,工厂构造函数需要来自编码器的更多逻辑,但与const类型不同,除非它们允许"非最终"实例变量.
它们对const构造函数的优点是什么?
谢谢你们.
编辑
下面是关于Seth Ladd的博客'Dart - 试图了解'工厂'构造函数'的价值的工厂构造函数的用法.
class Symbol {
final String name;
static Map<String, Symbol> _cache = new Map<String, Symbol>();
factory Symbol(String name) {
if (_cache.containsKey(name)) {
return _cache[name];
} else {
final symbol = new Symbol._internal(name);
_cache[name] = symbol;
return symbol;
}
}
Symbol._internal(this.name);
}
main() {
var x = new Symbol('X');
var alsoX = new Symbol('X');
print(identical(x, alsoX)); // true
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,与一般的构造函数,可以实现相同的效果与微妙的差异,但相当简单.
class Symbol {
static final Map<String, Symbol> cache = {};
final String name;
Symbol(name) …Run Code Online (Sandbox Code Playgroud)