我有一个其实例化对象具有功能的类,但是我知道其他语言将在该类内部具有辅助功能,而这些功能是公共的,而没有显式定义对象。
DART语言网站似乎并没有真正解决它。在一个简单的情况下,可能类似于拥有一个Point类,然后在其中包含一个jsondecoder,这可能有一些用处,而不必包含其他库。
class Point {
int x, y;
Point(this.x, this.y);
Point fromMap(HashMap<String, int> pt){
return new Point(pt["x"]||null, pt["y"]||null);
}
}
这样,当我需要使用Point类时,我可以说:
Point pt = Point.fromMap({});
我没有真正看到任何有关何时翻阅类以使其适当公开的示例。
Dart允许在类上定义静态成员。在您的情况下:
class Point {
int x, y;
Point(this.x, this.y);
static Point fromMap(Map<String, int> pt) {
return new Point(pt["x"], pt["y"]);
}
}
值得注意的是,您还可以使用命名构造函数和/或工厂构造函数:
class Point {
int x, y;
Point(this.x, this.y);
// use it with new Point.fromMap(pt)
Point.fromMap(Map<String, int> pt) : this(pt["x"], pt["y"]);
// use it with new Point.fromMap2(pt)
factory Point.fromMap2(Map<String, int> pt) => new Point(pt["x"], pt["y"]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句