2019年下半年下午第六题

 

 

 (1)查看实现了这个接口的类,发现是DocExplorer,他有俩个方法,一个是他的构造方法,所以这个接口定义的方法为public void update();

  (1)void update()

第(2)空是一个类型,为myObs的类型,往下寻找方法,发现用了一个foreach循环遍历Oberver类型的集合,所以myObs的类型应该是Observer.

  (2)Observer

第(3)空,用foreach循环Observer类型的对象,所以肯定需要用它做什么,我们再去寻找Observer有什么方法,发现只有个update

所以(3)obs.update()

第(4)空,要填补sub的类型,我们去代码中寻找sub有出现的地方,并且这个方法是DocExplorer的构造方法,我们可以先去寻找DocExplorer对象出现的地方.

是sbjectA,并且subjectA的类型是Subject

所以(4)是Subject

(5)sub是Subject类型的对象,他调用的是什么我们可以去对应的方法去找,因为题目中说到这是观察者模式,而DocExplorer是观察者,当那个对象状态变换的时候,通知其他观察他的对象,所以应该调用Attach方法,将调用这个方法的对象添加到观察者列表中,

所以(5)是Attach(this)

原文地址:https://www.cnblogs.com/youjunhui/p/15515381.html