メインコンテンツにスキップ

one_member_abstracts

安定版

単一の抽象メンバーを持つ抽象クラスの定義は、単純な関数で十分な場合は避けてください。

詳細

#

Effective Dart より

避けるべきこと:単純な関数で十分な場合に、単一の抽象メンバーを持つ抽象クラスを定義すること。

Java とは異なり、Dart はファーストクラス関数、クロージャ、およびそれらを使用するための軽量な構文を備えています。コールバックのようなものが必要なだけであれば、関数を使用してください。クラスを定義していて、callinvoke のような意味のない名前を持つ単一の抽象メンバーしかない場合、それはおそらく関数を求めている場合です。

悪い例

dart
abstract class Predicate {
  bool test(item);
}

良い例

dart
typedef Predicate = bool Function(item);

有効にする

#

one_member_abstracts ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に one_member_abstracts を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - one_member_abstracts

代わりに YAML マップ構文を使用してリンタールールを設定している場合は、linter > rules の下に one_member_abstracts: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    one_member_abstracts: true