2009-07-31 3 views
1

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

Моих вариантов:

  1. Создание одного адреса валидатора, который incredibily строги.
  2. Создайте очень свободный валидатор для основной записи, а затем повторите проверку с помощью специального валидатора для каждого агентства по мере необходимости, перед передачей каждой формы.
  3. Что-то, о чем я не думал?

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

Я знаю, что это действительно проблема агентства, если они отвергают совершенно законный адрес электронной почты, но просьбы об исправлении такого рода требуют времени, чтобы получить ответ, а когда что-то пойдет не так, клиенты не обвиняют агентство, они обвиняют программного обеспечения. (Даже если его собственная типографская ошибка)

ответ

3

Второй вариант - это определенный выбор: один огромный валидатор (будь то код, регулярное выражение, основанный на правилах, любой) будет кошмаром для поддержки и расширения. Более того, он на 20% меньше SOLID тем, что он нарушает S и O.

2

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

Кроме того, добавлять новые агентства довольно просто.

1

Я бы выбрал второй вариант. Имейте очень общий валидатор для начальной проверки. Затем небольшие, отдельные валидаторы для каждого агентства. Больше работы впереди, но гораздо проще в обслуживании. Как сказал Оксиморон, если агентство изменило свои действительные требования к электронной почте, вы измените только один валидатор. Также минимально добавлять новые агентства или удалять агентства. Он работает по принципу низкой сцепления, высокой сплоченности.

Смежные вопросы