软件架构与设计模式4典型软件.ppt

5.//实体类Pair.java package impinvosolution; class Pair { private int lineIndex; private int wordIndex; public Pair(int line, int word) { this.lineIndex = line; this.wordIndex = word; } public int getLineIndex() { return lineIndex; } public int getWordIndex() { return wordIndex; } } 6.//分发器主程序InvRetKwic.java package impinvosolution; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class InvRetKwic { public static void main(String[] args) throws IOException { File fInput = new File(KWIC_input.txt); File fOutput = new File(KWIC_output.txt); ListString [] characters = new ArrayListString [](); ListPair index = new ArrayListPair(); ListPair alphabetedIndex = new ArrayListPair(); Input.input(fInput, characters); CircularShift.circularShift(characters, index); Alphabetizer.alphabetizer(characters, index, alphabetedIndex); Output.output(characters, alphabetedIndex, fOutput); System.out.println(解决方案3:Implicit Invocation:\n); System.out.println(输入的每行:); printFile(KWIC_input.txt); System.out.println(); System.out.println(经过KWIC系统后输出的每行结果:); printFile(KWIC_output.txt); } private static void printFile(String string) throws IOException { DataInputStream in = new DataInputStream(new FileInputStream(string)); String i = in.readLine(); while (i != null) { System.out.println(i); i = in.readLine(); } in.close(); } } 4.5.2 观察者模式事件处理机制 观察者模式是事件系统风格的典型代表,即基于观察者模式的委派事件模型(DelegationEvent Model, DEM),一个Java组件所引发的事件并不由引发事件的对象自己来负责处理,而是委派给独立的事件处理对象负责。 在DEM模型中,目标角色(主题或被观察者,如界面组件)负责发布事件,而观察者角色(事件处理者)可以向目标订阅它所感兴趣的事件,当一个具体目标产生一个事件时,它将通知所有订阅者。事件的发布者称为事件源(Event Source),而订阅者称为事件监听器(Event Listener),在这个过程中还可以通过事件对象(Event Object)来传递与事件相关的信息,可以在事件监听者的实现类中实现事件处理,因此事件监听对象又可以称为事件处理对象。事件源对象、事件监听对象(事件处理对象)和事件对象构成了Java事件处理模型的三要素。事件源对象充当观察目标,而事件监听对象充当观察者。 以按钮点击事件为例,其事件处理流程如下: 1. 如果用户在GUI中单击一个按钮,将触发一个事件(如J

文档评论(0)

1亿VIP精品文档

相关文档