阅读以下说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。当公文类的内容或状态发生变化时,关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。一个OfficeDoc对象能够关联一组DocExplorer对象。当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个Java源文件中,能够正确编译通过。
[Java代码]
//Subject.java文件
public interface Subject
public void attach(Observer DocExplorer);
public void detach(Observer DocExplorer);
void notifyObservers();
//Observer.Java文件
public interface Obsever(
void update( (1) );
//OfficeDoc.Java文件
import Java.util.*;
public class OfficeDoc implements Subject//OfficeDoc类实现Subject接口
private Vector ObserverVector=new Java.util.Vector();
//存储与OfficeDoc相关联的DocExplorer对象
public void attach(Obsever observer)
//将某DocExplorer对象与OfficeDoc相关联
ObserverVector.addElement(observer);
public void detach(Observer observer)
//解除某DocExplorer对象与OfficeDoc的关联关系
ObsprverVector.removeElement(observer);
public void notifyobserVers()
//当OfficeDoc对象状态已发生变化时,通知所有的DocExplorer对象
Enumeration enumeration= (2) ;
while(enumeration.hasMoreElements())
((Observer)enumeration.nextElement()). (3) ;
public Enumeration Observers()
return ObserverVector.elements();
//其他公文类的属性和方法省略
//DocExplorer.java文件
public class DocExplorer implements (4)
public void update( (5) )
//更新DocExplorer自身的状态,代码省略
(3)处填()。