用事件体系结构实现KWIC系统,要求有交互功能,从控制台用键盘输入命令。
主程序如下:
package kwic.es;
//进程总控制器,初始化资源并触发用户输入监听管理
public class KWIC{
public void execute(){
//定义两个字符串容器
//lines存储用户已经输入的字符串,也就是原始字符串
//shifts存储已经处理好了的字符串,也就是原始数据经过拆分和排序处理后的结果集
//wordStore存储以统计的单词集
//lines的存储格式:每行用户输入的原始字符串的单词拆分序列(原始顺序排列)
//shifts的存储格式:原始数据经过拆分器和排序器加工后的产物单词序列
//wordStore的存储格式:一个存储单词的字符串集,以及一个存储对应单词出现次数的整数集
LineStorageWrapper lines = new LineStorageWrapper();
LineStorageWrapper shifts = new LineStorageWrapper();
WordStorage wordStore=new WordStorage();
WordsIndex wordsIndex =new WordsIndex(wordStore);
//input为输入管理器,识别用户输入指令以及决定后续处理过程
//shifter为拆分处理器,负责对用户输入字符串的拆分处理,监听lines,从input中得到字符串进行拆分处理后存储到shifts中
//alphabetizer为排序处理器