Допустим, у меня есть метод getAverageDifficulty
в моем классе Difficulty
, который выглядит следующим образом:
public static Float getAverageDifficulty (List<Difficulty> difficultyList) {
...
return average;
}
Мой метод, очевидно, должен быть статическим, поскольку нет смысла требовать экземпляр Difficulty
.Теперь предположим, что я использую интерфейс IDifficulty
, чтобы я мог изменить свою реализацию позже.Очевидно, я хочу, чтобы мой метод getAverageDifficulty
был доступен из IDifficulty
, и, поскольку я не могу объявить абстрактный статический метод, очевидным вариантом является размещение getAverageDifficulty
непосредственно в моем интерфейсе.Мой вопрос: я делаю ошибку, помещая этот статический метод в мой интерфейс, который содержит другие Difficulty
методы, ожидающие реализации?Разве я не должен смешивать статические и "нормальные" интерфейсные абстрактные методы?Должен ли я создать DifficultyHelper
класс и поместить туда свой метод?