阅读以下说明和Java代码,将应填入(n)处。[说明] 在一公文处理系统中,开发者定义了一个公文类Offic
阅读以下说明和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 Observer{
void update((1) );
}
//OfficeDoc.java 文件
import java.util.*;
public class OfficeDoc implements Subject(//OfficeDoc 类实现 Subject 接口
private Vector bserverVeetor=new java.util.Vector();
//存储与OfficeDoc相关联的DocExplorer 对象
public void attach(Observer 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();
}
//其他公文类的属性和方法省略
}
//DoeExplorer.java 文件
public class DocExplorer implements (4) {
public void update( (5) ){
//更新DocExplorer自身的状态,代码省略
}
}
(1) Subject subject(注:第二个subject可用其他标识符替换) (2) Observers() (3) update(this) (4) Observer (5) Subject subject(注:第二个subject可用其他标识符替换) 解析:第(1)空处观察者对象更新自身的状态,更新的数据应该来自被观察者对象,所以此处应该为一Subject,因此第(1)空的答案为Subject subject。同样的道理,第(5)空和第(1)空是相同的。
notifyObservers方法通知所有的观察者对象更新自身的状态,所以(2)空处应该返回所有的观察者对象,调用方法Observers()即可获得。第(3)空处对每个观察者对象更新状态,所以应该调用update方法,update方法需要此被观察者对象作为参数,所以使用this来获取对象自身。DocExplorer是一个观察者,因此需要实现接口Observer,第(4)空为Observer。
实体完整性要求主属性不能取空值,这一点可以通过()来保证。A.定义外码B.定义主码C.用户定义的完整 计算机类考试 2020-05-24 …
无穷小运算证明:1o(x^2)+o(x^3)=o(x^2)2x·o(x^2)=o(x^3)说是用定 数学 2020-06-03 …
物理题,请说明理由,O(∩∩)O谢谢!1.左盘砝码质量100g,游码示数为2g,物体质量?2.砝码 物理 2020-06-07 …
下列各组词语中加点的字,注音全都正确的一组是()A.卓著(zhuō)质量(zhǐ)褒义词(bǎo) 语文 2020-07-14 …
在证明二元函数可微充分条件的结尾,他得出差为o(p)+a(x)然后就得出结论请问这个结果怎么会等于 数学 2020-07-25 …
高数问题设函数f(x,y)在点(0,0)的某领域有定义,且fx(o,o)=3,fy(0,0)=-1, 数学 2020-11-01 …
下列词语中加点字的读音,全都正确的一组是()A.卓著zhuō质量zhì褒义词bǎo踽踽独行yǔB.比 语文 2020-11-05 …
补码,反码是什么不要说什么正数的补码就是正数,负数的补码是取反减一,我想知道补码的意义,这是个什么, 数学 2020-11-06 …
我有两个问题.1:什么是定义运算?2:如果对于任意非零有理数a、b,定义运算如下:a*b=(a+b) 其他 2020-11-20 …
加试题用UltraEdit软件观察字符内码(处理码),结果如图所示:已知汉字“学”的区位码为“490 其他 2020-11-21 …