Kaptcha的结构简介

Kaptcha是Google提供的一个图形验证码插件,可以从官网https://code.google.com/p/kaptcha/了解更多的详情。

它的源代码是公开的,在上面的官网提供的download项,可以下载一个zip包,里面包含了jar包和源代码。

从源代码中,可以获得Kaptcha这个项目的结构(整体的Kaptcha是由Producer实现的):

  1. 生成一个text,使用TextProducer
  2. 基于text,把包裹它的图片生成出来:
    • Render the text (word),使用WordRenderer
    • Background (add background),使用BackgroundProducer
    • Gimpy (distort image),使用GimpyEngine
      • Noise,使用NoiseProducer
    • Draw box,单独方法实现

可以看到,整体的业务逻辑思路都是用Interface来连接的,这给了后面的实现极大的灵活性。


Kaptcha的结构简介_第1张图片
Kaptcha的结构

如上图所示,为了让Kaptcha可以使用配置文件被灵活配置,专门提供了一个Configurable接口。如果你需要自己实现一个可配置的类,仅需implement Configurable就可以了。

Configurable中,提供了一个代理Config来处理/返回具体的事务/配置参数。而在Config中,又提供了一个ConfigHelper专门做配置文件的解析。

这样的代理模式,让整体结构清晰而灵活。

而作为整个项目的核心入口,当然是KaptchaServlet,里面做的工作就是简单地实现Servlet的doGet()方法:根据Properties创建出一个Config。有了它,便可以创建出相应的KaptchaProducer

你可能感兴趣的:(Kaptcha的结构简介)