首页
登录
从业资格
某文件管理系统中定义了类OfficeDoe和DocExplorer。当类Offi
某文件管理系统中定义了类OfficeDoe和DocExplorer。当类Offi
资格题库
2022-08-02
28
问题
某文件管理系统中定义了类OfficeDoe和DocExplorer。当类OfficeDoe发生变化时,类DocExplorer的所有对象都要更新其自身的状态。现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。
图6-1【Java代码】
选项
答案
解析
(1)void update();
(2)Observer;
(3)obs.update();
(4)Subject;
(5)Attach(this);
本题是对观察者模式的考查,观察者模式的意图是:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
本题根据Observer接口的实现类DocExplorer,实现类包括同名构造函数和update()方法,所以接口Observer缺失的是update()方法,并且没有方法体,(1)空填写void update()。
第2空是myObs表单类型的缺失,根据代码上下文,在构造函数中,根据this.myObs=new ArrayList<Observer>(),可以知道myObs是Observer表单,第(2)空填写Observer。
第3空是Notify()方法体的缺失,根据代码上下文,Notify传入了一个参数Observer obs,又根据代码上下文可知Observer只有一个update()方法,此时方法体调用的应该是update()方法,调用方法的对应是传入的obs,第(3)空填写obs.update()。
第4空、第5空缺失的是DocExplorer类的同名构造函数传入的参数类型以及构造方法体,这里结合根据观察者模式填空,对于实际观察者类,需要与被观察者联系起来,所以这里是与被观察者Subject联系,也就是调用Subject中的Attach()添加观察者列表。因此第(4)空需要填写参数类型Subject,形参名sub已经给出了提示;sub调用增加观察者方法,将当前观察者添加到对应列表,即第(5)空填写Attach(this)。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2409599.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
某高校的管理系统中有学生关系为:学生(学号,姓名,性别,出生日期,班级),该关系
Linux系统中,文件的权限表示为“-rw-rw-rw-”,下列说法正确的是(
在设计分E-R图阶段,人力部门定义的员工实体具有属件:员工号,姓名,性别和出生日
某本科高校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,系
某本科高校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,系
某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。请根据下述
某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练
在设计分E-R图阶段,人力部门定义的员工实体具有属件:员工号,姓名,性别和出生日
关于日志文件,下列说法错误的是()A.保存了更新前的数据 B.保存了更新后
假设日志文件的尾部如下图所示,则恢复时应执行的操作是()。 A.UndoT
随机试题
[originaltext]W:Johnmusthavebeenjokingwhenhesaidthathewasgoingtoq
Previously,thesack-likerabbitappendixwasthoughttoserveprimar
[img]2022m3x/ct_ve01202001m_eillist_0711_220329[/img][br][originaltext](Sales
DemographicindicatorsshowthatAmericansinthepostwarperiodweremore
[originaltext]M:WecontinuewiththeWorldofInvestigation.Laura,anidentic
利多卡因用于抢救()。A.急性肺水肿 B.心律失常 C.护理中枢衰竭 D
证券登记结算公司的登记结算制度不包括()。A.证券实名制 B.货银对付的交收制
在西方市场经济高度发展的社会里,企业的经营观念大体上有()。A:开发观念 B
患者女,28岁。因外出春游出现咳嗽、咳痰伴喘息1天入院。体检:体温36.5℃,脉
战略控制流程的第一个步骤是()。A:衡量实际绩效 B:采取纠正措施 C:制定
最新回复
(
0
)