网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
观察者(Observer)模式适用于( )。
A.访问一个聚合对象的内容,而无需暴露他的内部表示
B.减少多个对象或类之间的通信复杂性
C.将对象的状态恢复到先前的状态
D.一个多对象依赖关系。当一个对象修改后,依赖他的对象都自动得到通知
B.减少多个对象或类之间的通信复杂性
C.将对象的状态恢复到先前的状态
D.一个多对象依赖关系。当一个对象修改后,依赖他的对象都自动得到通知
参考答案
参考解析
解析:观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新
更多 “观察者(Observer)模式适用于( )。A.访问一个聚合对象的内容,而无需暴露他的内部表示 B.减少多个对象或类之间的通信复杂性 C.将对象的状态恢复到先前的状态 D.一个多对象依赖关系。当一个对象修改后,依赖他的对象都自动得到通知 ” 相关考题
考题
● 下面的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、观察者(Observer)模式B、迭代器(Iterator)模式C、职责链(Chain of Responsibility)模式D、策略(Strategy)模式
考题
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的异常处理机制可理解为哪一种行为模式()A
观察者(Observer)模式B
迭代器(Iterator)模式C
职责链(Chain of Responsibility)模式D
策略(Strategy)模式
考题
多选题关于观察者模式说法正确的是?()A观察者(Observer)模式,也叫发布/订阅(Publish/SubscribE.模式。B是MVC(模型-视图-控制器)模式的重要组成部分。C复用性强。D对象之间实名通信。
考题
单选题一个web网站可以同时拥有针对电脑的Html页面和针对手机的WAP页面。这属于的模式是()A
观察者(observer)模式B
命令(commanD.模式C
单一(singleton)模式D
代理(proxy)模式
热门标签
最新试卷