one_member_abstracts

Group: style

Maturity: stable

Dart SDK: >= 2.0.0 • (Linter v0.1.1)

View the Project on GitHub dart-lang/linter

From the style guide:

AVOID defining a one-member abstract class when a simple function will do.

Unlike Java, Dart has first-class functions, closures, and a nice light syntax for using them. If all you need is something like a callback, just use a function. If you're defining a class and it only has a single abstract member with a meaningless name like call or invoke, there is a good chance you just want a function.

GOOD:

typedef bool Predicate(item);

BAD:

abstract class Predicate {
  bool test(item);
}