Patrones y consejos de validación de lógica de negocios

Tengo dos capas de validación en mi aplicación. Primero, la validación de la entidad realizada por la API de validación de bean (por ejemplo, campos obligatorios). El segundo nivel es la validación de la lógica de negocios. Por ejemplo, el usuario tiene una publicación. El usuario puede eliminar una publicación solo si es el creador de esta publicación y la calificación de la publicación es <50. Así que tengo que hacer algo como esto:

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")

No me gusta de esta manera, ya que estos condicionales se reutilizan y tengo que duplicar el código. Además, si el número de condicionales es mayor que 5, se vuelve irreal leer y comprender el código.

Además, Spring Validator estándar no será muy útil, ya que tengo que hacer una validación diferente para una entidad en diferentes acciones (eliminar y actualizar, por ejemplo)

Así que estoy buscando una manera de hacer esto de una manera más inteligente (patrón tal vez) y estaría muy agradecido si alguien pudiera darme una pista.

¡Gracias de antemano!

Respuestas a la pregunta(2)

Su respuesta a la pregunta