现在在java 开发中经常会遇到要交验某个object 的是否符合要求,例如最简单的是否为空,数字的范围...等等。当然现在也有一些jar包提供了这样的功能,我遇见过的就是在属性上加annotation ,比如 @notNull,@Max,@Min 等等 如果只是简单的校验,那么这些定义已经足够完成你的功能,假如我们的这个object 比较灵活,其具有状态,在不同的状态我们所做的校验都是不同的,不管是检查是否为空还是其他的,那么我们就需要更加灵活的来实现,当然代码是最灵活的,但是如果只用代码来实现这部分校验显得这部分工作比较繁重。说起灵活,莫非配置,我们可以根据项目的需要定义一些xml来配置某个类实例在不同状态下的校验条件,接下来的事就是我们来完成一个自定义化的解读配置进行配置的过程,如果该编码完成我们不论以后多少个不同类型的对象进行校验我们仅需要进行编写符合我们校验框架的配置文件,再也不用去自己处理如何校验的工作。这就是所谓的磨刀不误砍柴工吧:) 然而在 我们中国的编程过程我还没有看到有人这么做,要么到网上找到人家写好的东西,直接使用,要么就去直接写代码来判断,前者个人认为 主要不够灵活,不能满足比较特殊的需求,而后者会让代码像狗屎一样,让人一看就烦,也不便于会面的维护。
具体的例子,本人也没有完成,只有一个简单例子,我相信,如果有人想这样做那么,只需将改例子再调整一下就好了。