跳到主要内容

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 规则,请在 linter > rules 下添加 one_member_abstracts: true

analysis_options.yaml
yaml
linter:
  rules:
    one_member_abstracts: true