avoid_classes_with_only_static_members 린트 규칙: static 멤버만 있는 클래스 피하기
avoid_classes_with_only_static_members 린트 규칙: static 멤버만 있는 클래스 피하기
유틸리티나 static 메서드를 제공하려는 목적 하나만으로 클래스를 만드는 것은 권장되지 않아요. Dart는 정확히 그런 이유 때문에 함수가 클래스 밖에 존재할 수 있도록 허용하고 있어요. 이 린트 규칙은 static 멤버만 담고 있는 클래스를 찾아내서 알려줘요.
본문
설명
Effective Dart에서 제안하는 내용이에요.
static 멤버만 포함하는 클래스를 정의하지 마세요.
유틸리티를 제공하거나 static 메서드를 담기 위한 목적 하나로 클래스를 만드는 것은 권장되지 않아요. Dart는 바로 그런 이유로 함수가 클래스 밖에 존재할 수 있게 해두었기 때문이에요.
BAD:
class DateUtils {
static DateTime mostRecent(List<DateTime> dates) {
return dates.reduce((a, b) => a.isAfter(b) ? a : b);
}
}
class _Favorites {
static const mammal = 'weasel';
}
GOOD:
DateTime mostRecent(List<DateTime> dates) {
return dates.reduce((a, b) => a.isAfter(b) ? a : b);
}
const _favoriteMammal = 'weasel';
활성화 방법
avoid_classes_with_only_static_members 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.
linter:
rules:
- avoid_classes_with_only_static_members
대신 YAML 맵 문법을 사용해서 린트 규칙을 설정하고 있다면, linter > rules 아래에 avoid_classes_with_only_static_members: true를 추가하면 돼요.
linter:
rules:
avoid_classes_with_only_static_members: true