Передовой метод проверки объекта - PullRequest
0 голосов
/ 08 октября 2018

Я хочу подтвердить, что объект проверяет некоторые правила, но я не уверен, что это лучший способ сделать это.У меня есть класс Validator для проверки некоторых объектов.

Любые рекомендации?

1 Ответ

0 голосов
/ 08 октября 2018

В общем, у вас есть два способа:

  • указание ограничений проверки непосредственно для полей классов.
    API проверки бинов может помочь вам.
    @NotEmpty, @NotBlank, ... - это ограничения, которые могут вас заинтересовать.
    Пример этого API можно найти здесь .

  • определение класса, как вы это делали, который выполняет полную проверку объекта, обычно передаваемого в качестве параметра метода этого класса проверки.
    API проверки бина все еще может вас заинтересовать.

У каждого способа есть свои преимущества и ограничения.
Вы должны знать о них и использовать способ, который лучше соответствует вашим требованиям.
Вот краткое резюмеприготовлено.Я, возможно, скучаю по некоторым вещам, но думаю, что это может дать вам некоторые идеи / идеи.

Указание ограничений на поля

Преимущества:

  • ограничения, удерживаемые классами для проверки себя: код более осмысленный.
  • ограничения, которые можно использовать повторно, если они не относятся к конкретному варианту использования.

Ограничения:

  • Если у вас есть несколько способов проверки ограничений, этого будет недостаточно,
  • проверка может быть разбита на несколько классов: сложнее читать / поддерживать код.

Пример: проверка сущностей JPA путем указания ограничений на сами классы сущностей имеет смысл: у вас есть один способ проверки каждого компонента (в соответствии с моделью данных), и вы хотите повторно использовать эти проверки.

Определение класса валидатора

Преимущества:

  • расширяемая модель: позволяет несколькими способами проверять ограничения объекта: просто создайте новый валидатор
  • одно место для чтения / сохранения кода проверки.
  • не нужно менять классы для проверки себя (иногда вы не можете или не хотите)

Ограничения:

  • ограничения не могут быть использованы повторно, даже если ограничения не являются специфическими для варианта использования.Вы должны создать новый класс валидатора для каждого случая.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...