Mam dwie warstwy sprawdzania poprawności w mojej aplikacji. Pierwszym jest walidacja jednostki przeprowadzona przez API sprawdzania fasoli (na przykład wymagane pola). Drugi poziom to sprawdzanie logiki biznesowej. Na przykład użytkownik ma wpis. Użytkownik może usunąć post tylko wtedy, gdy jest on twórcą tego postu i po ocenie < 50. więc muszę zrobić coś takiego:Wzorce i porady dotyczące sprawdzania logiki biznesowej
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")
Nie lubię w ten sposób, jak to warunkowe są ponownie wykorzystywane, a ja musisz skopiować kod. Co więcej, jeśli liczba warunków jest większa niż 5, odczytanie i zrozumienie kodu staje się nierzeczywiste.
Ponadto norma Wiosna Validator nie będzie bardzo pomocne jak mam ekspres do innego walidacji dla jednego podmiotu na różnych działań (usuwanie i aktualizowanie na przykład)
Więc szukam sposobu, aby to zrobić w mądrzejszy sposób (może wzór) i byłbym bardzo wdzięczny, gdyby ktoś mógł dać mi wskazówkę.
Z góry dziękuję!
Co się stanie, jeśli parametry metody sprawdzania różnią się w zależności od warunku? Powiedzmy, że numer karty Visa jest liczbą całkowitą i ma 4-cyfrowy kod, ale numer karty głównej to jeden 16-cyfrowy numer? – ahmet