У меня есть интерфейс Calculator
, который формирует класс, который вычисляет некоторые результаты и возвращает их с заданной схемой.
interface Calculator {
List<Object> getResults();
List<String> schema();
}
Каждый из его подклассов имеет свою схему, так как они не вычисляют точноте же вещи.Но все экземпляры одного и того же подкласса имеют одну и ту же схему, поскольку каждый раз она вычисляется одинаково.
Проблема в том, что я хочу получить доступ к этой схеме где-то еще в моем коде без необходимости что-либо вычислять, поскольку вычисления могут бытьдорогой.
В идеале мне бы хотелось, чтобы у каждого подкласса был свой атрибут public static final List<String> SCHEMA
.Но поскольку статические атрибуты / методы не могут быть переопределены, я не могу требовать, чтобы все подклассы интерфейса Calculator
реализовывали его.
Есть ли способ обойти или я должен сохранить схему при вычислении результатов, ипередать эту схему для дальнейшего использования?(думаю, это может стать утомительным)