Шаблоны и советы по проверке бизнес-логики

У меня есть два уровня проверки в моем приложении. Во-первых, это проверка сущности, выполняемая API проверки бина (например, обязательные поля). Второй уровень - проверка бизнес-логики. Например, у пользователя есть пост. Пользователь может удалить сообщение, только если он является создателем этого сообщения и рейтинг сообщения <50. Поэтому я должен сделать что-то вроде этого:

if (post.getCreator().equals(session.getUser())) {
  if (post.getRating() < 50) {
    postRepository.delete(post);
  } else errors.add(400, "Cant delete post with rating 50 or higher")
} else errors add (400, "You should be owner of the post")

Мне не нравится этот способ, поскольку эти условия используются повторно, и мне приходится дублировать код. Более того, если количество условных выражений больше 5 или около того, читать и понимать код становится нереально.

Более того, стандартный Spring Validator не будет очень полезен, так как мне приходится делать разные проверки для одной сущности при разных действиях (например, удаление и обновление)

Поэтому я ищу способ сделать это умнее (возможно, по шаблону), и я был бы очень признателен, если бы кто-нибудь дал мне подсказку.

Заранее спасибо!

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

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