Должны ли службы и репозитории всегда быть одноразовыми, поскольку они всегда не имеют состояния? - PullRequest
0 голосов
/ 10 марта 2019

По принципу REST API должно быть без сохранения состояния.Так что, если у каждого запроса есть требуемый контекст, не должны ли сервисы, репозитории всегда быть одиночными, и один и тот же экземпляр можно использовать повторно?

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

Итак, каковы рекомендуемые практики в этом контексте?

Spring Framework также разработан таким образом.

1 Ответ

0 голосов
/ 10 марта 2019

Вещество без сохранения состояния прекрасно в программировании. Есть много преимуществ. Однако иногда может быть разумным сделать ваши репозитории с состоянием (например, простое кэширование или повторная логика или буферизация - зависит от конкретной ситуации, с которой вы имеете дело).

Таким образом, ответ таков: в общем случае сохраняйте код без сохранения состояния, но при этом не бойтесь вводить состояние, когда это необходимо.

P.S. Существуют умные методы FP для работы с состоянием без сохранения состояния. State монада Checout Haskell как классический пример.

...