Предположим, у нас есть десятки java POJO, которые представляют мой домен, то есть мои данные в системе, которые текут как объекты между разными слоями моей системы. Системой может быть веб-приложение или простое настольное приложение. То, из чего состоит домен, на самом деле не имеет значения.Должен ли Java POJO проверять поле и исключать исключения в методах setter?
При проектировании моей системы я смущен, где я должен поместить любую логику проверки. Мои POJO (объекты домена) представляют мои данные, а некоторые из полей внутри этих объектов должны придерживаться определенных критериев, но если я положу много логики проверки внутри своих методов setter, тогда единственный способ рассказать вызывающему клиенту - выбросить исключение. И если я не хочу, чтобы система выходила из строя, исключение должно быть проверенным исключением, которое необходимо поймать и обработать. Следствием этого является то, что каждый раз, когда я создаю новый объект с помощью setter-методов (или даже конструкторов), я делаю либо повторное бросить это исключение, либо использовать блок try-catch. Он не чувствует себя хорошо, если вы будете вынуждены использовать try-catch на многих методах setter.
Итак, вопрос заключается в том, где я должен поставить свою логику проверки, чтобы я не загромождал свой код с большим количеством блоков шаблонов try-catch и rethrows. Лучшие участники JAVA-байтов могут присоединиться к обсуждению.
Я исследовал и искал Google, но не нашел конкретных обсуждений по этой теме, поэтому я с большим энтузиазмом жду, чтобы получить более глубокое представление о том, как все должно быть сделано.
Вы проверили проверку Java bean http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html? –
Попробуйте использовать проверку бина ([JSR-303] (http://beanvalidation.org/1.0/spec/)), как реализовано ['hibernate-validator'] (http://hibernate.org/validator/) – beerbajay
Да, я проверил эти концепции, но я не спрашиваю о конкретных API или методах. Я хочу понять и подумать о том, что должно быть сделано с проверкой данных и где должна быть проведена валидация, чтобы не загромождать систему всюду с большим количеством исключений и обработки исключений. – Moni