我们有几个 webapps 需要 ESAPI java 库提供的功能。我和我的同事处于两难境地,是直接使用 ESAPI 从而创建对 ESAPI 的直接依赖,还是创建一个抽象对 ESAPI 的调用的接口。
通过抽象对库的依赖,我们可以灵活地在需要时轻松切换到其他选项。除此之外,我们还可以定义自己的界面,这更有可能满足我们的需求。
但是当我们在接口中识别出我们需要的方法时,它看起来越来越像 ESAPI 本身中使用的接口。ESAPI 本身就是一个门面,具有 Validator、Encryptor 和其他的可配置实现。
ESAPI 是否足够成熟以至于直接依赖它是安全的,还是坚持使用这个包装器是否明智?