prefer_constructors_over_static_methods
Prefer defining constructors instead of static methods to create instances.
This rule is available as of Dart 2.0.0.
Details
PREFER defining constructors instead of static methods to create instances.
In most cases, it makes more sense to use a named constructor rather than a static method because it makes instantiation clearer.
BAD:
class Point {
num x, y;
Point(this.x, this.y);
static Point polar(num theta, num radius) {
return Point(radius * math.cos(theta),
radius * math.sin(theta));
}
}
GOOD:
class Point {
num x, y;
Point(this.x, this.y);
Point.polar(num theta, num radius)
: x = radius * math.cos(theta),
y = radius * math.sin(theta);
}
Usage
To enable the prefer_constructors_over_static_methods
rule,
add prefer_constructors_over_static_methods
under linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- prefer_constructors_over_static_methods