静态基类可以实现类似面向方面编程的效果,通过继承,可以获得静态基类的静态变量,而不是通过参数传递的方式,这个例子中,由于分词是几个任务都需要的一个共同功能,不可能在每个task都执行一次分词这个开销就太大了,采用这个方法,可以保持一致的Task接口,而且其他任务都可以通过继承分词任务,获得该任务执行后的结果,而不需要显示的通过参数传递.否则这个设计将很难做.设计图如下.
一个Task抽象基类的数组,在每来一个HTML页面一次遍历执行里面的任务,任务的优先关系必须保证.支持扩展,需要增加一个任务之需要在合时的顺序上挂一个Task即可,需要分词服务的,之需要继承分词Task,由于分词Task本身也是一个抽象Task,所以可以保持一致的接口,而且也享用了分词Task的执行结果,该结果是一个静态变量,全局唯一.
如图