对外部的输入进行验证其实很简单,有多种现成的手段可用比如SpringBoot里的类库“hibernate-validator”,引入后直接使用即可。这种验证方式仅限于视图模型或简单类型,不建议在领域模型中也进行使用,会造成BO与基础设施的强绑定,看过前面内容的您应该知道,减少对基础设施的依赖是六边型架构的典型特征。回到正题,我个人在面对外部输入的时候,如果是视图模型,便在模型中直接嵌入验证代码;如果是简单类型,则将验证的逻辑交付地一个验证工具进行。这样做的好处是业务逻辑中的代码量比较少,看起来干净;另外就是由于工具是可以复用的,所以减少的代码量总的算起来还是不少的,毕竟验证是一个刚需。熟悉本系列文章的老朋友应该发现我提到了很多次的“代码干净、整洁”,这个并非是可有可无的要求,而是应当在开发过程中随时要注意的。在满足需求的同时有效代码越少系统可维护性越高;涉及到工作交接或增加人手等相关工作,这些在IT团队中非常常见的情况本来成本是不低的,但如果能在代码书写度方面给予重视,成本是可以降下来的。