问答题 试题五(共15分) 阅读下列说明和C++代码,将应填入____(n)____处的字句写在答题纸的对应栏内。 [说明] 某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新。 现在采用观察者(Observer)模式来开发该系统。观察者模式的类图如图5-1所示。 [C++代码]
【正确答案】(1)Subject (2)(*it)->update(temperature,humidity,cleanness) (3)notifyObservers() (4)measurementsChanged() (5)Observer (6)envData->registerObserver(this)
【答案解析】试题五分析 本题考察观察者(Observer)模式的概念及应用。 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 Observer模式适用于: ①当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这两者封装在独立地对象中以使它们可以各自独立地改变和复用。 ②当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时。 ③当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即:不希望这些对象是紧耦合的。 观察者模式的结构如下图所示,其中: