Обходной путь статического метода интерфейса Java?

У нас есть заданный интерфейс REST:

POST /calculation
abc

Этот расчет может быть реализован по разным логическимкалькуляторов» в зависимости от конфигурации сервера.

Сейчас мы разрабатываем интерфейс Java, который должен реализовывать каждый калькулятор. Интерфейс будет иметь метод для каждой службы REST.

Учитывая, что все вызовы REST (и HTTP) не сохраняют состояния, каждый метод должен быть статическим. Однако вы можетеопределить статические методы в интерфейсах Java. Есть ли хороший обходной путь для этой ситуации?

Мы можем определить методы как нестатические, а затем просто сначала создать экземпляр класса калькулятора. Просто кажется чище указывать, что методы не сохраняют состояние, используя ключевое слово static в интерфейсе.

Ответы на вопрос(4)

Решение Вопроса

что вам нужен интерфейс с методами, объявленными как нормальные, и реализующий класс, а затем просто создать один экземпляр этого. Там'нет причинкак таковой чтобы сами методы были статичными.

реализующих этот интерфейс, не нуждается в изменении реализации, используйтеstatic method в интерфейсе какhelper метод.

Ты выиграл'не нужно обходиться сjava 8 версия.

Java 8 поддерживает статические методы в интерфейсе. Посмотрите на эту документациюстр.

Статические методы:

В дополнение к методам по умолчанию, вы можете определитьстатические методыв интерфейсах. (Статический метод - это метод, связанный с классом, в котором он определен, а не с каким-либо объектом. Каждый экземпляр класса совместно использует свои статические методы.)

Это облегчает вам организацию вспомогательных методов в ваших библиотеках; вы можете сохранитьstatic methods специфичные дляinterface В то же самоеinterface а не вseparate class

Другое решение вашей проблемы используетSingleton как предложено в принятом ответе.

Stateless Безразлично»Т означает статический. Отсутствие состояния означает, что компонент нене полагайтесь на государство. Я говорю компонент, потому что вся реализация вашего интерфейса фактически не имеет состояния - в ней не будет переменных-членов. Таким образом, несколько экземпляров классов реализации в порядке. Особенно, если у вас есть контекст для управления ими - например, Spring или EJB.

должен быть статичным? Они, конечно, могут быть, но это ограничит вас с точки зрения подключения другой реализации позже. Если вас беспокоит потребление памяти или что-то подобное, использование Singleton будет для вас тем же, что и статическое, как вы уже сказали в последнем абзаце вашего вопроса.

Ваш ответ на вопрос