试题六(共15分)
阅读以下说明和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的关联关系 ObserverVector.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 自身的状态,代码省略
}
}
阅读以下说明和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的关联关系 ObserverVector.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 自身的状态,代码省略
}
}