我需要验证一个电子邮件地址,该地址将传输到几个可能的州和联邦机构,如果电子邮件地址不符合其验证要求,每个机构都可能会拒绝整个表单。 (有些人拒绝完全有效的字符,而有些人根本不对其进行验证,有些人甚至不支持电子邮件地址字段)
我的选择是:
我倾向于第二种,即使它意味着更多的工作,因为它不会强迫用户创建额外的电子邮件帐户,除非某个特定机构拒绝接受他们的正常帐户。
我知道如果他们拒绝一个完全合法的电子邮件地址,这确实是该机构的问题,但是要求修复这些事情需要一段时间才能得到答案,当出现问题时客户不会责怪该机构,他们会责怪软件。 (即使它自己的印刷错误)
答案 0 :(得分:3)
第二个选项是明确的选择:一个巨大的验证器(无论是代码,正则表达式,基于规则,无论如何)将是一个支持和扩展的噩梦。此外,它减少了20%SOLID,因为它违反了S和O.
答案 1 :(得分:2)
我也更喜欢第二个,因为如果代理机构更改其验证要求,则更容易修改代码。
此外,添加新代理商要容易得多。
答案 2 :(得分:1)
我肯定会选择第二种选择。有一个非常通用的验证器进行初步检查。然后为每个机构提供较小的单独验证器。预先做更多工作,但更容易维护。像Oxymoron所说,如果代理商更改了有效的电子邮件要求,您只需更改一个验证器。添加新代理商或删除代理商也很少。它适用于低耦合,高内聚原理。