【Java习作】KWIC的分析和解决

java

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

  • 两个行存储模块,第一个行存储模块负责存储所有原先的行,第二个行存储模块负责存储所以循环移位后的模块。 输入模块负责设定路径并且从输入文件中读入并且存储到第一个行存储模块中。 循环移位模块负责循环移位并且存储在第二个行存储模块。输出模块负责输出到文件,主控模块负责主控流程。添加一行到第一个行存储模块就触发了一个事件向循环移位模块发送,循环移位模块会根据这个事件对这一行就行处理,存储到第二个行存储模块,这就会另一个事件发送到排序模块,模块会把新加进来的行与旧行进行混合然后排序。
  • 实现的是Observable/Observers模式,其中的事件互动有两部分:
  • 移位循环模块和第一个行存储模块注册。移位模块是第一个行存储模块的观察者。

    排序模块注册和第二个行存储模块注册。排序模块是第二个行存储模块的观察者。

    Java对这样的模式提供Observable 类和Observer接口,

    在java.util中的Observer接口为观察者提供了方便,只有一个方法需要实现:update。这个方法在当接到事件时被触发。

    在java.util中的Observable类为发送事件的类提供了方便,我们可以通过继承而是用其提供了其他类向观察者注册的方法。

    d.基于管道的方案

    在基于管道的方案中,每个组件都会有一组输入流和一组输出流,一个组件读入,然后处理后送出到下一个组件上。这个组件一般称为filter。连接器则称为pipes。filter之间不能有数据共享,并且彼此相互独立。最有名的类似的程序就是Unix的Shell了。

     

    http://cid-a0a0b50959052db4.skydrive.live.com/self.aspx/.Public/kwic^_pipe.zip

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    以上是 【Java习作】KWIC的分析和解决 的全部内容, 来源链接: utcz.com/z/392353.html

    回到顶部