跳到主要內容

prefer_constructors_over_static_methods

穩定

推薦使用建構函式而非靜態方法來建立例項。

詳情

#

推薦定義建構函式而非靜態方法來建立例項。

在大多數情況下,使用命名建構函式比使用靜態方法更有意義,因為它能使例項化更清晰。

不良示例

dart
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));
  }
}

良好示例

dart
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);
}

啟用

#

要啟用 prefer_constructors_over_static_methods 規則,請在你的 analysis_options.yaml 檔案中的 linter > rules 下新增 prefer_constructors_over_static_methods

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_constructors_over_static_methods

如果你使用 YAML map 語法來配置 Linter 規則,請在 linter > rules 下新增 prefer_constructors_over_static_methods: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_constructors_over_static_methods: true