观察者(Observer)模式适用于( )。 A.访问一个聚合对象的内容而无须暴露它的内部表示*B.减少多个对象或类之间的通信复杂性C.将对象的状态恢复到先前的状态D.一对多对象依赖关系,当一个对象修改后,依赖它的对象都自动得到通知

观察者(Observer)模式适用于( )。

A.访问一个聚合对象的内容而无须暴露它的内部表示*

B.减少多个对象或类之间的通信复杂性

C.将对象的状态恢复到先前的状态

D.一对多对象依赖关系,当一个对象修改后,依赖它的对象都自动得到通知


相关考题:

下列UML类图表示的是( )设计模式。该设计模式中,( )。A.备忘录(Memento)B.策略(strategy)C.状态(State)D.观察者(Observer)(47)

● 下面的UML类图描绘的是 (46) 设计模式。关于该设计模式的叙述中,错误的是 (47) 。(46)A. 桥接B. 策略C. 抽象工厂D. 观察者(47)A. 该设计模式中的Observer 需要维护至少一个Subject对象B. 该设计模式中的ConcreteObserver 可以绕过 Subject及其子类的封装C. 该设计模式中一个Subject对象需要维护多个Observer 对象D. 该设计模式中Subject需要通知 Observer 对象其自身的状态变化

● (40) 设计模式允许一个对象在其状态改变时,通知依赖它的所有对象。该设计模式的类图如下图,其中, (41)在其状态发生改变时,向它的各个观察者发出通知。(40)A.命令( Command)B.责任链(Chain of Responsibility)C.观察者( Observer)D.迭代器(Iterator)(41)A.SubjectB.ConcreteSubjectC. ObserverD.ConcreteObserver

● 下列UML类图表示的是 (46) 设计模式。该设计模式中, (47) 。(46)A. 备忘录(Memento)B. 策略(Strategy)C. 状态(State)D. 观察者(Observer)(47)A. 一个Subject对象可对应多个Observer对象B. Subject只能有一个ConcreteSubject子类C. Observer只能有一个ConcreteObserver子类D. 一个Subject对象必须至少对应一个Observer对象

图4-6示意的为(48)设计模式,表示一个作用于某对象结构中的各元素的操作。A.Visitor(访问者)B.Observer(观察者)C.Flyweight(享元)D.Prototype(原型)

设计模式允许一个对象在其状态改变时,通知依赖它的所有对象。该设计模式的类图如下图,其中, (68)在其状态发生改变时,向它的各个观察者发出通知。A.命令( Command)B.责任链(Chain of Responsibility)C.观察者( Observer)D.迭代器(Iterator)

阅读下列说明和Java代码,将应填入 (n)处的字句卸载答题纸的对应栏内. 【说明】 某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新。 现在采用观察者(Observer)模式来开发该系统。观察者模式的类图如图6-1所示。【Java代码】 import java.util.*; interface Observer { public void update(float temp, float humidity, float cleanness); } interface Subject { public void registerObserver(Observer o); //注册对主题感兴趣的观察者 public void removeObserver(Observer o); //删除观察者 public void notifyObservers(); //当主题发生变化时通知观察者 } class EnvironmentData implements (1) { private ArrayList observers; private float temperature, humidity, cleanness; public EnvironmentData() { observers = new ArrayList(); } public void registerObserver(Observer o) { observers.add(o); } public void removeObserver(Observer o) { /* 代码省略 */ } public void notifyObservers() { for (int i = 0; i observers.size(); i++) { Observer observer = (Observer)observers.get(i); (2) ; } } public void measurementsChanged() { (3) ; } public void setMeasurements(float temperature, float humidity, float cleanness) { this.temperature = temperature; this.humidity = humidity; this.cleanness = cleanness; (4) ; } } class CurrentConditionsDisplay implements (5) { private float temperature; private float humidity; private float cleanness; private Subject envData; public CurrentConditionsDisplay(Subject envData) { this.envData = envData; (6) ; } public void update(float temperature, float humidity, float cleanness) { this.temperature = temperature; this.humidity = humidity; this.cleanness = cleanness; display(); } public void display() {/* 代码省略 */ } } class EnvironmentMonitor{ public static void main(String[] args) { EnvironmentData envData = new EnvironmentData(); CurrentConditionsDisplay currentDisplay = new CnrrentConditionsDisplay(envData); envData.setMeasurements(80, 65, 30.4f); } }

一个web网站可以同时拥有针对电脑的Html页面和针对手机的WAP页面。这属于的模式是() A.观察者(observer)模式B.命令(commanD.模式C.单一(singleton)模式D.代理(proxy)模式

( )设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类A.工厂方法(FactoryMethod) B.享元(Flyweight) C.观察者(Observer)D.中介者(Mediator)

下图所示为(44)设计模式,属于(45)设计模式,适用于(46)。A.代理(Proxy)B.生成器(Builder) C.组合(Composite)D.观察者(Observer)

阅读下列说明和C++代码,回答问题,将答案填入相应横线处。【说明】某实验室欲建立一个实验室环境监测系统,能够显示实验室的温度、湿度以及洁净度等环境数据。当获取到最新的环境测量数据时,显示的环境数据能够更新现在采用观察者(observer)模式来开发该系统,观察者模式的类图如下图所示。?【C++代码】#include #include using namespace std;class Observer {public:????virtual void update(float temp, float humidity, float cleanness)=0;};class Subject {public:????virtual void registerObserver(Observer* o) = 0; //注册对主题感兴趣的观察者????virtual void removeObserver(Observer* o) = 0; //删除观察者????virtual void notifyObservers() = 0;//当主题发生变化时通知观察者};class EnvironmentData : public?????(1) ????{private:vector observers;float temperature, humidity, cleanness;public:????void registerObserver(Observer* o) { observers.push_back(o); }????void removeObserver(Observer* o) { /* 代码省略 */ }????void notifyObservers() {for(vector::const_iterator it = observers.begin(); ???????????it != observers.end(); it++){???????(2) ???; }}Void measurementsChanged() {?????(3) ???; }void setMeasurements(float temperature, float humidity, float cleanness) {????this->temperature = temperature;????this->humidity = humidity;????this->cleanness = cleanness;????????(4) ???;????}};class CurrentConditionsDisplay : public?????(5) ???{private: ?????float temperature, humidity, cleanness;????Subject* envData;public:????CurrentConditionsDisplay(Subject* envData) {????????this->envData = envData;???????????(6) ??; ??????}void update(float temperature, float humidity, float cleanness) ?{this->temperature = temperature;????this->humidity = humidity;????this->cleanness = cleanness;????display();}void display() { /* 代码省略 */ }};int main() {????EnvironmentData* envData = new EnvironmentData();????CurrentConditionsDisplay* currentDisplay = new CurrentConditionsDisplay(envData);????envData->setMeasurements(80, 65, 30.4f);????return 0;}

欲使一个后端数据模型能够被多个前端用户界面连接,采用( )模式最适合A.装饰器(Decorator)B.享元(Flyweight) C.观察者(Observer)D.中介者(Mediator)

A.代理(Proxy)B.生成器(Builder)C.组合(Composite) D.观察者(Observer)

以下属于结构型模式的是()。A、代理(Proxy)模式B、合成(Composite)模式C、命令(Command)模式D、观察者(Observer)模式

异常处理机制可理解为哪一种行为模式()A、观察者(Observer)模式B、迭代器(Iterator)模式C、职责链(Chain of Responsibility)模式D、策略(Strategy)模式

封装分布于多个类之间的行为的模式是()A、观察者(Observer)模式B、迭代器(Iterator)模式C、访问者(Visitor)模式D、策略(Strategy)模式

以下属于行为对象模式的是()A、模板(Template Method)模式B、迭代器(Iterator)模式C、命令(Command)模式D、观察者(Observer)模式

Java的异常处理机制可理解为哪一种行为模式()A、观察者(Observer)模式B、迭代器(Iterator)模式C、职责链(Chain of Responsibility)模式D、策略(Strategy)模式

一个web网站可以同时拥有针对电脑的Html页面和针对手机的WAP页面。这属于的模式是()A、观察者(observer)模式B、命令(commanD.模式C、单一(singleton)模式D、代理(proxy)模式

关于观察者模式说法正确的是?()A、观察者(Observer)模式,也叫发布/订阅(Publish/SubscribE.模式。B、是MVC(模型-视图-控制器)模式的重要组成部分。C、复用性强。D、对象之间实名通信。

单选题异常处理机制可理解为哪一种行为模式()A观察者(Observer)模式B迭代器(Iterator)模式C职责链(Chain of Responsibility)模式D策略(Strategy)模式

填空题Java-API中,有两个与观察者模式相关的类和接口,分别是Observable和Observer,Observer的Update函数中用到的两个参数的参数类型是()和()。

多选题以下属于结构型模式的是()。A代理(Proxy)模式B合成(Composite)模式C命令(Command)模式D观察者(Observer)模式

多选题以下属于行为对象模式的是()A模板(Template Method)模式B迭代器(Iterator)模式C命令(Command)模式D观察者(Observer)模式

单选题Java的异常处理机制可理解为哪一种行为模式()A观察者(Observer)模式B迭代器(Iterator)模式C职责链(Chain of Responsibility)模式D策略(Strategy)模式

多选题关于观察者模式说法正确的是?()A观察者(Observer)模式,也叫发布/订阅(Publish/SubscribE.模式。B是MVC(模型-视图-控制器)模式的重要组成部分。C复用性强。D对象之间实名通信。

单选题封装分布于多个类之间的行为的模式是()A观察者(Observer)模式B迭代器(Iterator)模式C访问者(Visitor)模式D策略(Strategy)模式

单选题一个web网站可以同时拥有针对电脑的Html页面和针对手机的WAP页面。这属于的模式是()A观察者(observer)模式B命令(commanD.模式C单一(singleton)模式D代理(proxy)模式