问题
单项选择题
(40) 设计模式允许一个对象在其状态改变时,通知依赖它的所有对象。该设计模式的类图如下图,其中, (41) 在其状态发生改变时,向它的各个观察者发出通知。
(41)处填()。
A.Subject
B.ConcreteSubject
C.Observer
D.ConcreteObserver
答案
参考答案:B
解析:
[分析]: 本题考查设计模式的基本知识。
命令(Command)模式通过将请求封装为一个对象,可将不同的请求对客户进行参数化。责任链(Chain of Responsibility)模式将多个对象的请求连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止,避免请求的发送者和接收者之间的耦合关系。观察者(Observer)模式定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
在上述观察者模式的类图中,Subject(目标)知道其观察者,可以有任意多个观察者观察同一个目标,提供注册和删除观察者对象的接口。Observer(观察者)为那些在目标发生改变时需获得通知的对象定义一个更新接口。 ConcreteSubject(具体目标)将有关状态存入各ConcreteObserver对象,当它的状态发生改变时,向它的各个观察者发出通知。ConcreteObserver(具体观察者)维护一个指向ConcreteSubject对象的引用,存储有关状态,实现Observer的更新接口以使自身状态与目标的状态保持一致。