首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer。当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer。当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态
admin
2021-03-24
121
问题
阅读下列说明和Java代码,将应填入
(n)
处的字句写在答题纸的对应栏内。
【说明】
某文件管理系统中定义了类OfficeDoc和DocExplorer。当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态。现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。
【Java代码】
importjava.util.
*
;
interface Observer{
public
(1)
;
};
interface Subject{
public void Attach(Obseryer obs);
public void Detach(Observer obs);
public void Notify();
public void setStatus(int status);
publicintgetStatus();
};
classOfficeDoc implements Subject{
private List<
(2)
>myObs;
private String mySubjectName;
privateintm_status;
publicofficeDoc(String name){
mySubjectName=name;
this.myObs=new ArrayList
();
m_status=0;
}
public void Attach(Observer obs){this.myObs.add(obs);}
public void Detach(Observer obs){this.myObs.remove(obs);}
public void Notify(){
for(Observer obs:this.myObs){
(3)
;}
}
public void setStatus(int status){
m_status=status;
System.out.println("SetStatus subject["+mySubjectName+"]status:"
+status);
}
publicintgetStatus(){return m status;}
};
classDocExplorer implements Observer{
private String myObsName;
public DocExpiorer(String name,
(4)
sub){
myObsName=name;
sub.
(5)
;
}
public void update() {
System.out.printin("update observer["+myObsName+"]");
}
};
claSsObserverTest{
public static void main(String[]args){
Subject subjectA=new OfficeDoc("subject A");
Observer oberverA=new DocExplorer("observer A",subjectA);
subjectA.setStatus(1);
subjectA.Notify();
}
}
选项
答案
(1)void update() (2)Observer (3)obs.update() (4)Subject (5)Attach(this)
解析
本题考查设计模式中的观察者(Observer)模式的基本概念和应用。
观察者模式的意图是,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式的结构图如图6-2所示。
其中:
●Subiect(目标)知道它的观察者,可以有任意多个观察者观察同一个目标;提供注册和删除观察者对象的接口。
●Observer(观察者)为那些在目标发生改变时需获得通知的对象定义一个更新接口。
●ConcreteSubject(具体目标)将有关状态存入各ConcreteObserver对象;当它的状态发生改变时,向它的各个观察者发出通知。
●ConcreteObserver(具体观察者)维护一个指向ConcreteSubject对象的引用;存储有关状态,这些状态应与目标的状态保持一致;实现Observer的更新接口,以使自身状态与目标的状态保持一致。
观察者模式适用于:
●当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用。
●当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时。
●当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。
本题中的类Subject对应于图6-2中的Subject,类OfficeDoc对应ConcreteSubject;类Observer对应图6-2中的Observer,类DocExplore对应ConcreteObserver。DocExplore维护一个指向OfficeDoc对象的引用,当OfficeDoc的状态发生改变时,向DocExplore发出通知。
第(1)空需要填写Observer中的核心方法,即在目标发生改变时通知观察者的更新接口。这个方法的原型可以在Obsever的子类DocExplore中找到:void update()。这里Observer被定义为了接口,update方法需要在其子类中进行实现,所以第(1)空应填入void update()。
一个Subject可以有多个观察者,在Subject中需要提供增加和删除观察者的接口,即类中的Attach、Detach方法。这两个方法的主要操作对象就是类中的属性myObs。根据程序上下文推断,myObs表示的应该是观察者的集合,所以第(2)空应填入Observer。
第(3)空出现在Subject的方法Notity中,这个方法的功能是当目标发生变化时,通知所有与该目标关联的观察者,即调用每个观察者定义的update方法,所以第(3)空应填入obs.update()。
DocExplore是一个具体的观察者,它需要维护一个指向目标的对象,在这里实际上就是指向OfficeDoc的对象。观察者与目标的关联关系是通过DocExplore的构造函数实现的。因此第(4)空应填入Subject。
观察者与目标的关联关系的建立需要调用Subject中的方法Attach,因此第(5)空应填入Attach(this)。
转载请注明原文地址:https://www.kaotiyun.com/show/1oxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
从工作的频段、数据传输速率、优缺点以及它们之间的兼容性等方面,对IEEE802.11a、IEEE802.11b和IEEE802.11g进行比较。1.将(1)处空缺设备的名称填写在相应位置。2.(1)所在局域网内的PC或笔记本计算机的IP地址有
Linux系统采用了树型多级目录来管理文件,树型结构的最上层是根目录,其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的服务器和基于Windows操作系统的客户机之间的文件、目录及共享打印服务。
阅读以下说明,回答问题1~3,将解答填入对应的解答栏内。某公司的分支机构通过一条DDN专线接入到公司总部,地址分配和拓扑结构如图5-1所示。在两台路由器之间可以使用静态路由,也可以使用动态路由。下面是公司总部的路由器R2的配置命令列表,在
阅读以下说明,回答问题1至问题5,将解答填入对应的解答栏内。HFC(HybirdFiber-coaxialcable,混合光纤同轴电缆网)接入技术是以现有的有线电视网(CATV)为基础,综合应用模拟和数字传输技术、射频技术和计算机技术所产生的一
假设在服务器和客户机之间均采用TCP/IP协议通信。请估算出在峰值时间点,该局域网上传输的数据的最小流量是多少?(请简要写出计算过程)要保证在峰值时间点,应用任务的处理速度仍可接受,服务器所需的最小主存是多少兆字节?(请简要写出计算过程)
阅读以下说明,回答问题。(2011年上半年下午试题四)[说明]某公司两分支机构之间的网络配置如图3-11所示。为保护通信安全,在路由器router-a和router-b上配置IPSec安全策略,对192.168.8.0/24网段和192.168.
Multipurpose Internet MaiI Extension (MIME) is a(71)document messaging standard in the Internet enviroment, with MIME, users can
MultipurposeInternetMailExtension(MIME)isa(71)documentmessagingstandardintheInternetenviroment,withMIME,userscans
MultipurposeInternetMailExtension(MIME)isa(71)documentmessagingstandardintheInternetenviroment,withMIME,userscans
随机试题
3PE防腐管为三层结构,底层为()。
《大同》选自()
运动处方的基本内容不包括
患者,女,30岁。发低热2个月,做多项检查未见异常,每日午后发热,身体困倦,四肢乏力,劳累后发热更甚,舌质淡,脉虚细无力。用药宜首选
下列选项中,不属于“四不两直”中“四不”的内容包括()。
下列说法中,符合《中华人民共和国税收征收管理法》及其实施细则中有关延期纳税规定的是()。
李某两年前参加全省公务员考试,被某市土地局录用。近几个月来他感到机关单位的工作太过于缺乏激情,而且本职工作与自己的专业相去甚远,因此向单位领导提出辞职申请。单位作出不允许他辞职的决定,李某遂向法院提出申诉,请求法院驳回单位对他的决定。问题:(1)
受疫情影响,2020年全国社会消费品零售总额391981亿元,同比下降3.9%,居家消费需求明显增长,“宅经济”带动新型消费模式加快发展。2020年,全国网上零售额比上年增长10.9%,增速比前三季度加快1.2个百分点。其中实物商品网上零售增长14.8%,
某市城南区进行了初中二年级的全区数学统一考试,下表中列出了全区成绩的平均分和标准差以及随机抽取的两个班级的平均分和标准差。现欲考查:A班成绩与全区平均成绩是否存在统计学意义上的差异。
Youwillhearfivepeopletalkingabouttheshortcoursestheyattended.Forquestions9-13,choosefromthelistA-Fwhate
最新回复
(
0
)