晚上好,
我正在对
http://wiki2xhtml.sourceforge.net/
以获得更好的概述和可维护性。(当我决定开始编程时,我就开始了这个项目,所以-你明白了,对吧?;)
目前,我想知道如何解决这个问题,我现在将描述:
每个文件都将通过多个解析器(例如一个用于链接、一个用于表、一个用于图像等):
public class WikiLinks extends WikiTask { ... }
public class WikiTables extends WikiTask { ... }
然后将按以下方式分析文件:
public class WikiFile {
...
public void parse() {
//Run all parsers on this file.
if (!parse) return;
WikiTask task = new WikiLinks();
do {
task.parse(this);
} while ((task = task.nextTask()) != null);
}
}
有时,我可能根本不想使用解析器(对于只需要复制的文件),或者只想使用选定的解析器(例如,用于测试目的)。所以在运行task.parse()之前,我需要检查这个特定的解析器是否真的是必要的/需要的。(可能通过黑名单或白名单。)
你建议比较一下吗?每个wikitask的id(如何操作?)?将任务对象本身与wikitask的新实例进行比较(开销)?