阅读以下说明和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。
用一定滑轮匀速提升重为190N的物体,使其升高2m,所用拉力为200N,则有用功为多少J,总功为多 物理 2020-05-17 …
行列式的问题确定i和j的值,使得9级排列1i25j4869为偶排列。 数学 2020-06-12 …
J=定积分-π/2到π/2arctan(e^x)·(sinX)^2dx我看着复习全书上的答案是设x 数学 2020-06-12 …
已知一棵二叉树的中序序列和后序序列分别为c,b,a,e,d,h,g,j,i,f和c,b,e,h,j 数学 2020-06-12 …
()和“山”有关A嗡B含C窗D烤E鸣F绝G银H烟i浸j()和“山”有关A嗡B含C窗D烤E鸣F绝G银 语文 2020-07-05 …
帮我做这些题目:3.设i,j为int型变量,则下面for循环语句的执行结果是for(I=10,j=0 其他 2020-10-30 …
运算符重载假定K是一个类名,并有定义"Kk;intj;",已知K中重载了操作符(),且语句"j=k( 其他 2020-11-01 …
读图“某地地质构造图”,回答下列各题.(1)图中丁处地质构造名称是.(j)乙地质构造顶部岩层缺失的原 语文 2020-12-20 …
在光滑水平面上一质量为m的质点以角速度ω沿半径为R的圆周轨迹作匀速运动.试分别用动量定理和积分法,求 物理 2021-01-13 …
电流密度矢量的方向与导体中场强方向的一致证明电流密度矢量j,定义的时候是与正电荷运动的方向一致,怎么 物理 2021-01-13 …