🗃️

Dart で static しか扱わないクラスを作る

2024/03/07に公開

Dart で static しか扱わないクラスを作る

表題の通りです。

abstract final class でインスタンス化不可になります。

abstract は継承しないとインスタンス不可、final は継承不可を表すので理にかなっていますね。

abstract final class Converter {
  static double hourToSecond(double hour) => hour * 3600;
}

main() {
  print(Converter.hourToSecond(3));
  Converter(); // エラー: Abstract classes can't be instantiated. Try creating an instance of a concrete subtype.
}

調べたところ、https://github.com/dart-lang/language/issues/2270#issuecomment-1485824233 で開発メンバーからの言及もありました。

たとえば、Flutter の Colors でもこの手法が使われています。

GitHubで編集を提案

Discussion